前言
当前工作区 —add—> stage —commit—> 本地仓库 —push—> 远程仓库 pull push branch rebase merge reset revert checkout
一、必备命令
push之前先pull一下
git push # 默认情况下仅将当前分支推送到远程对应的分支
# 若hard会退过 git reset --hard HEAD^ 则需要强制push,用下面的命令
git push origin < 对应的BranchName> --force
git push --all # 将所有分支推送到远程
rebase 变基
a——b——c( master)
|
| __d——e——f( *subbranch)
git rebase master
will be:
a——b——c( master) ——d‘——e’——f‘( *subbranch)
有点像
将d合并到master生成d',再将e合并到d' 生成e',再将f合并到e' 生成f'
删去def将( *subbranch) 变更到f‘
merge
a——b ( *master)
|
| _c ( 我需要被合并)
git merge 把谁合并过来
a——b——d( *master)
| ↑
| ____ c ( 我需要被合并)
branch
强制修改分支位置
git branch -f master HEAD~3
reset
永久回退
git reset --hard HEAD^
revert
前进一个负直
git revert HEAD^
二、将本地项目推送到远程
远程仓库有文件
//初始化
git init
//关联远程仓库
git remote add origin 远程地址
//拉取远程master分支上内容
git fetch origin master
//设置当前分支为远程仓库的master分支
git branch --set-upstream-to= origin/master master
//提交本地文件到暂存区
git add .
//将暂存区内容添加到本地仓库中
git commit -m"注释"
//推送到远程分支
git push
远程仓库无文件
//初始化
git init
//从现有 Git 仓库中拷贝项目
git clone
//关联远程仓库
git remote add origin 远程地址
//提交本地文件到暂存区
git add .
//将暂存区内容添加到本地仓库中
git commit -m "注释"
//推送到远程分支
git push
总结
add
commit
push
push
unstage
working
stage
local_repo
remote
问题
空文件夹问题 git追踪内容而不是目录,所有git会忽略空目录。 解决方法:在空目录下新建一个空文件,如.gitkeep
让git忽略某些文件/文件夹 新建.gitignore文件,将要忽略的文件夹或文件直接添加进去即可
references
csdn blog 关于Git这一篇就够了