Git解決沖突和diff用法


假設這樣一個場景,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                          # 比較暫存區和版本庫差異

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM