git操作之衝突解決
應用場景,任哥,我兩個人共同修改了git專案上的一個檔案。zsh命令列模式
準備工作
簡寫命令解釋
gl=git pull
gp=git push
gst=git status
gcmsg=git commit -m
操作演示檔案
test_git.py
切換到分級developer
git checkout developer
檔案內容
正常情況
任哥修改了檔案添加了一個7
然後執行了以下命令。
# git add test_git.py 如果git專案中沒有這個檔案就需要add。 git commit -m "add 1-6 to py file" . git push

任哥的命令操作
我pull了一下
簡寫gl

我pull了一下
看
test_git.py | 1+ 1 file changed,1 insertion(+)
可以發現我這多了一個檔案。
衝突開始
任哥對原檔案進行如下修改:

任哥添加了個7
然後執行一下的命令
git commit -m "add 7 to py file" . git push

命令截圖
我同樣修改了檔案內容如下:

我添加了個8
然後git pull了一下出現下圖

error:合併衝突
然後我執行了git status

檢視狀態
發現紅字modified test_git.py 意思是這個檔案修改了,因為任哥修改了檔案並提交了,我本地也修改了。
根據提示 如果修改了檔案執行git add,然後執行git commit,如果沒有修改直接執行git commit。
我沒有注意提示直接執行了git commit而沒有執行git add 出現瞭如下錯誤。
具體命令如下
git commit -m "add 8 to file" . git push #繼續報錯 git pull
看最後一行fix conflicts and run "git commit"。讓我解決衝突再次提交,此時發現命令列多了個狀態>M<,這個符號告訴我們當前處於merge狀態。

沒有使用add直接提交
然後我再執行git status檢視狀態

檢視衝突狀態
發現紅色字型both modified :test_git.py.兩個檔案都修改了
這個時候我們就需要看看這個檔案發生了什麼 發現多了一些看不懂的內容,內容如下:

此時檔案內容
<<<<<HEAD 8 ====== 7 >>>>>>一串字串
衝突的部分使用<<<<<進行了內容標示,=====將內容分為了兩部分,8上面標有HEAD,一般己方修改的會標有HEAD,====下面的7是任哥,新增的。此時我需要做的就是和任哥確認是留8還是7,經過商量最後留我的數字8,然後我需要做的就是修改上面的內容為下面內容
下面對這次修改的內容做了一次解釋:
<<<<<HEAD#手動刪除 8 ======#手動刪除 7#手動刪除 >>>>>>一串字串#手動刪除
然後執行
git commit之後執行git push,完成本次修改。
最後習慣性的執行一次git pull 確認是最新的程式碼。

最後提交

拉取最新的程式碼
顯示 Everything up-to-date 即最新程式碼
更多工具使用以及python技巧,請關注公眾號:python學習開發。