1. 程式人生 > >使用git pull命令時衝突

使用git pull命令時衝突

(假設分支為origin/master)

git pull介紹:

該命令會把伺服器上新增的檔案、刪除、更新的檔案同步到本地,

沒有衝突時:遠端新增和刪除還有更新的檔案,沒有和本地倉庫衝突,所以正常。

如果伺服器上的檔案a有改動(假設同事提交),而你本地也對檔案a做了修改:

如果你們的程式碼有重疊(即修改了同一行),則會報錯:Please, commit your changes or stash them before you can merge,比如:

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 //遠端的主分支和本地的當前分支如果是同一個,則直接git fetch命令也可以。

git diff -w origin/master //檢視有什麼檔案的什麼位置會被更新