(下面的解释都假设分支为origin/master)
git pull介绍:
该命令会把服务器上新增的文件、更新的文件同步到本地。
使用该命令可能会出现以下结果:
①如果服务器只是新增了几个文件,但是其他文件一点没变,则git pull顺利执行,本地也新增了这几个文件
②服务器上的文件a修改了,但是本地没有修改文件a(两人没有同时操作同一行代码),
此时顺利将本地的文件a更新为服务器上的文件a
③如果服务器上的文件a有改动(假设同事提交),而你本地也对文件a做了修改:
如果你们的代码有重叠(即修改了同一行),
则会报错:Please, commit your changes or stash them before you can merge.
这时,你需要把冲突的文件commit(并不操作服务器的文件a):
git add 文件a
git commit -m '提交信息注释')
然后,再使用
git pull origin master
这时,会报错:Automatic merge failed; fix conflicts and then commit the result.
意思是文件a自动合并到本地时,发生冲突(此时文件a已被更新),你需要修改被更新的文件a。
打开本地文件a,可以看到文件a已经被更新(保留了服务器文件a的改动,同时也保存了本地的文件a的修
改),此时,你需要修改文件a。
然后
git add 文件a,
git commmit -m '提交注释信息'
git push origin master
这时,服务器上的文件a,已经被替换成你push的文件a了。
补充:
如何在 git pull之前查看服务器上有什么文件会被更新(合并)?
git fetch origin/master //当前是origin/master分支时,直接git fetch命令也行
git diff -w origin/master //查看有什么文件的什么位置会被更新