衝突是在多人協做
開發過程當中常見的狀況。
咱們先學習在同一分支下的衝突問題。
在同一分支
下,衝突的問題表現爲多人
對同一文件
進行了修改
。git
模擬衝突:
一、先克隆同一個項目到兩個文件夾。此時兩個項目都是最新的。
二、修改第一個項目中的文件,提交到倉庫。
三、再修改第二個項目中的同一個文件,至關於另外一我的在同時對項目進行了修改。
四、這時若是進行Commit操做,是沒有問題的。由於Commit只提交到本地。
五、但當進行Push操做
時,就會出錯
,這就是衝突
。github
衝突特徵:
報錯時,下面的標是紅色的工具
彈出框裏顯示
error: failed to push some refs to …
git did not exit cleanly
並在左下角
提示你去進行Pull操做
。
學習
一、先進行Pull操做,可是仍是會報錯。
信息顯示:
CONFLICT (content): Merge conflict in 新建文本文檔.txt
Automatic merge failed; fix conflicts and then commit the result.
翻譯過來就是遇到衝突
,沒法將線上倉庫
和本地
的這個文件進行自動合併
。
二、若是沒有出錯,那說明線上倉庫和本地雖然有衝突,可是能夠自動合併。
三、有衝突的文件會顯示成警告狀態
。
四、打開衝突文件,看到出現了奇怪的符號。
spa
這就是git裏展現衝突
的方式,HEAD
是本地
的最新版本內容,
下面的一串數字
表明線上倉庫
的一個版本
,每一次commit都會產生一個這樣的版本。
因此咱們能夠知道的是本地版本是」嘻嘻222」,線上是」呵呵」,因此有衝突。翻譯
五、一種解決方式是直接進行修改,將衝突的幾行刪除,修改爲我要的。
六、另外一種方式是使用衝突編輯工具。
右鍵文件,TortoiseGit
=> Edit confilicts
七、打開後
在下面的編輯框中寫上最終的代碼,保存。
八、編輯完成後,保存。
九、以後就能夠正常進行commit和push操做了。
3d
嘗試我的模擬衝突,或者幾我的共同使用一個git項目作一個真實的衝突。
練習如何解決衝突,成功上傳。code
github: https://github.com/lvancer/course_gitblog