使用git pull命令時衝突
阿新 • • 發佈:2019-02-18
(假設分支為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 //檢視有什麼檔案的什麼位置會被更新