假設這樣一個場景,A和B兩位同學各自建了兩個分支來開發不同的功能,大部分情況下都會盡量互不干擾的,
但是有一個需求A需要改動一個基礎庫中的一個類的方法,不巧B這個時候由於業務需要也改動了基礎庫的這個方法。
那么在提交的時候便有可能會出現沖突conflicts
一定要記住這個單詞,CONFLICT
此時使用 git diff
查看具體沖突
上圖就是沖突的示例,
沖突的地方==============分出了上下兩個部分,
上半部分 **HEAD** 是當前所在分支的代碼
下半部分是別人提交的代碼
此時進入代碼中把判斷哪些代碼進行刪改,
我們只需要移除掉那些老舊代碼,同時也要把那些 <<< HEAD ==== 以及 >>>>>>baidu_activity 標記符號刪除,最后進行一次 commit 就可以了。
diff的用法
diff命令是很常用的,在開發過程中,大家會經常做一些代碼改動,但時間久了難免會忘記做過哪些改動,在提交之前需要確認下,這個時候就可以用diff來查看到底做了哪些改動,
例如,有一個 a.md 的文件,做了一些改動,
當輸入 git diff 時,
就會看到如下內容:
需要注意的是,直接輸入 git diff 只能比較當前文件和暫存區文件差異,
什么是暫存區?就是還沒有執行 git add 的文件。
當然除了與暫存區做比較之外,他還可以有其他用法,如比較兩次 commit 之間的差異,比較兩個分支之間的差異,比較暫存區和版本庫之間的差異等,具體用法如下:
- git diff <$id1> <$id2> # 比較兩次提交之間的差異
- git diff <branch1>..<branch2> # 在兩個分支之間比較
- git diff --staged # 比較暫存區和版本庫差異