天天看點

使用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 //檢視有什麼檔案的什麼位置會被更新