对同一个分支,可能有多个人在开发,在你down下代码并修改完提交的这段时间里,可能你的同事已经做了新的提交,那么此时应该如何提交呢?
- 首先保存本地修改
git commit
或者直接push 到git/gerrit (只是上传,不merge) git pull --rebase
更新远程代码到本地- 此时可能产生冲突,需要手动修改代码解决冲突。
注意:此时是在某个解决冲突的节点上,并不是在分支上。 - 解决完冲突后,
git rebase --continue
从解决冲突的节点回到分支,此时解决冲突的那些修改已经保存到分支的git记录中。 git add
添加新的修改到暂存区git commit --amend
追加提交到刚刚一开始没有merge的提交中git push origin ……
- OK,可以merge了!
有一个博客解释的蛮好的:
为什么要先commit,然后pull,最后再push?而不是commit然后直接push?
– 如果解决完冲突push时出现不知道为什么的问题,所在节点不对,可以:
git reset 节点
回退到那个节点,重新add
->commit
-> push
,此时冲突的解决都是仍然保存有效的。