代码提交
- 回退到某个版本: git reset XXX(commit的id)
- 生成新的changeID:git commit --amend(针对gerrit,abandon后,再次提交需要生成新的changeId)
- 拉取代码:git pull --rebase
- 添加到暂存区:git add .
- 提交commit:git commit -am XXXX(备注信息)(防止出现冲突和merge的情况,先git pull --rebase再commit)
- push到远程:git push origin HEAD:refs/for/branchName
多条commit合成一条commit
git rebase -i commitId(你想要合并的几个commitId的之前的commitId)
查看log,已经变成一条commit
分支的操作
- 新建一个分支,并切换到该分支: git checkout -b branchName(分支名)
- 推到远程分支:git push origin -u branchName(分支名)
- 切换分支/切换上一个分支:git branch -
- 删除本地分支:git branch -D branchName(分支名)
- 不小心删除了远程分支(本地分支还木有删除): git push origin branchName:branchName
stash
- 保存暂存区和工作区的工作进度:git stash save XXXX(进度的信息,比如修改样式)
- 查看stash list:git stash list
- 获取stash list的某一个到工作区(并在list删除):git stash pop stash@{2}
- 获取stash list的最后保存(第一个)到工作区(并在list删除):git stash pop
合并代码
1.(commit较少时,cherry-pick合并到dev)
- checkout dev
- git pull --rebase
- git cherry-pick commitID
- 如果是图片冲突git checkout --ours .来解决冲突保留原本的,git checkout --theirs . (传进来的)
- 如果代码有冲突,编译器解决冲突后,git add .
- git cherry-pick --continue
- 如果想放弃合并:git cherry-pick --abort
2.(commit较多时,rebase合并到dev)
- checkout dev
- git pull --rebase
- git rebase -i branchName
- 清除光标之前的所有提交记录:gg+d+G
- noop
- git pull --rebase
- 如果不是你想合并的commit,可以忽略:git rebase --skip
- 如果有冲突,解决冲突,git add .
- git rebase --continue
- 直到所有的都rebase完
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。