出過兩次了,每次都查很多資料,太蛋疼,記錄在此。
當你的項目比較牛逼的時候,有人給你貢獻代碼,但他修改的地方恰恰你前陣子也修改了,這樣在github中就不能夠自動merge了。
因此你需要手動去解決沖突。首先要在本機安裝好命令行工具gitbash,之后用clone拉下你的項目,之后
按照以下命令輸入
git checkout -b 某人-master master git pull https//github.com/某人的/某項目的.git master
這時候命令行會提示你有沖突,沖突文件是啥,那如何解決沖突呢,很簡單
在同步代碼的過程中,git會自動檢查沖突,並嘗試進行**自動合並**。最好的情況應該是大家同時修改一個文件,但是大家修改的地方不同了。在這樣的情況下,git會進行非沖突合並,這時,在調用 git pull 的時候,git會嘗試進行非沖突合並。
而在合並過程中有沖突的時候, git 會把修改記錄直接保存在文件中,讓開發者判斷文件如何解決合並。例如,在一個描述文件中同時修改了一句話,在合並的時候,git會這么做:
<<<<<<< HEAD It's not a project cool enough for you to enjoy the code but a mix of my thoughts in the year 2012~2013. I didn't know where the project leads to. Hope it will became useful after practice. ======= It's not a project
即把兩個更改都寫在文件上,但是用=======來區別發生沖突的位置,在=======以上是 HEAD,即本地的代碼;而=======以下則是來自遠程的更改了。這個時候,你可以選擇保留遠程或本地的修改或者都不要(簡單地說,把不需要的內容刪除即可)。
也就是說我們把文件修改好后,把增加的那幾行head >>><<<之類刪掉就ok啦。之后沖突修改完畢,我們繼續輸入
git commit -a //把修改提交到這個人的分支上,會提示你成功merge本地代碼到這個人的代碼庫 git checkout master //切換到自己的分支上 git merge 某人-master //
還要記着一點,本地修改代碼前一定要先pull一下看看,記得慎用github的在線編輯功能
