目录
1.在commit 之前,先pull最新代码,然后再commit,并且立刻push。
首先,常用的拉取代码有两种:
pull、pull --rebase
git pull = git fetch + git merge FETCH_HEAD
git pull --rebase = git fetch + git rebase FETCH_HEAD
他们两个的区别,主要是fetch远程后,进行代码合并的时候有不同的操作。
pull 例子:
在 版本B 时刻,张三、李四都pull到最新的 版本B。然后,张三、李四分头进行开发。
张三先在本地commit 版本C
然后李四在本地commit 版本D、E
张三再在本地commit 版本F,然后push(此时push不会失败,因为远程版本还是停留在版本B)
李四再在本地commit 版本G,然后push(此时李四push失败,因为远程版本已经被张三push成了版本F)
----D---E----G--- 李四
/
A---B---C--------F----- 张三
所以,李四需要先pull。在pull的过程中,git会提示远程已经是版本F了。但由于版本F实际commit的时间是在李四本地提交的 版本D、E之后的,这里就 可能 存在冲突,所以git会自动生成一个merge记录H 并且让你填写注释。