【Git教程】03.衝突

大綱

衝突

衝突是在多人協做開發過程當中常見的狀況。
咱們先學習在同一分支下的衝突問題。
同一分支下,衝突的問題表現爲多人同一文件進行了修改git

模擬衝突
一、先克隆同一個項目到兩個文件夾。此時兩個項目都是最新的。
image.png
二、修改第一個項目中的文件,提交到倉庫。
image.png
三、再修改第二個項目中的同一個文件,至關於另外一我的在同時對項目進行了修改。
image.png
四、這時若是進行Commit操做,是沒有問題的。由於Commit只提交到本地。
image.png
五、但當進行Push操做時,就會出錯,這就是衝突github

衝突特徵
報錯時,下面的標是紅色的image.png工具

彈出框裏顯示
error: failed to push some refs to …
git did not exit cleanly
並在左下角提示你去進行Pull操做
image.png學習

解決

一、先進行Pull操做,可是仍是會報錯。
image.png
信息顯示:
CONFLICT (content): Merge conflict in 新建文本文檔.txt
Automatic merge failed; fix conflicts and then commit the result.
翻譯過來就是遇到衝突,沒法將線上倉庫本地的這個文件進行自動合併
二、若是沒有出錯,那說明線上倉庫和本地雖然有衝突,可是能夠自動合併。
三、有衝突的文件會顯示成警告狀態image.png
四、打開衝突文件,看到出現了奇怪的符號。
image.pngspa

這就是git裏展現衝突的方式,HEAD本地的最新版本內容,
下面的一串數字表明線上倉庫的一個版本,每一次commit都會產生一個這樣的版本。
因此咱們能夠知道的是本地版本是」嘻嘻222」,線上是」呵呵」,因此有衝突。翻譯

五、一種解決方式是直接進行修改,將衝突的幾行刪除,修改爲我要的。
image.png
六、另外一種方式是使用衝突編輯工具。
右鍵文件,TortoiseGit => Edit confilicts
image.png
七、打開後
image.png
在下面的編輯框中寫上最終的代碼,保存。
八、編輯完成後,保存。
image.png
九、以後就能夠正常進行commit和push操做了。
image.png3d

練習

嘗試我的模擬衝突,或者幾我的共同使用一個git項目作一個真實的衝突。
練習如何解決衝突,成功上傳。code


github: https://github.com/lvancer/course_gitblog

相關文章
相關標籤/搜索