git比較兩個分支之間的區別


實際工作場景中經常會用到的一個技巧,比較兩個分支之間差了哪些commit還沒有合並??

 

回答一個問題:我當前開發的這個feature/001分支,有哪些commit還沒有被合並到master分支?

 

我要看一下,當前開發的這個feature分支,有哪些commit還沒有被合並到master分支中去?如果知道了以后,心里就有數了,大概知道自己跟master分支之間差了多少代碼。。。。

 

可能你開發一個feature分支,都很多天了,然后中間一度停下來,去做了另外一些事情,比如說其他的feature分支,或者是休假了。回來以后都忘了自己跟master分支之間差了哪些代碼了,此時你就可以用這個方法,看一下

 

使用master..feature/001語法,就可以查看哪些commit是feature/001分支可以觸達的,但是是master分支無法觸達的,此時就可以看到feature/001分支做的那些改動哪些還沒有合並到master分支里去

 

當前,我們處於feature/003這個分支,然后我們此時就要看一下說,我都忘了,我在這個分支上開發了多少代碼,多少個commit了

 

git log --abbrev-commit master..feature/001

 

 

 

同樣可以看一下,feature/001分支比master分支落后了哪些commit,不是需要跟master保持一下同步

 

git show commit標識符

 

還可以看一下,master分支有哪些commit是feature/003分支所沒有的,這個是個什么場景啊?這個場景很實用的,就是一般如果你開發一個feature分支時間過長,比如說都開發了幾個禮拜了,master分支肯定代碼都變化了好多了

 

這個時候你心里有點虛,你就擔心說,會不會到時候我往master分支一合並,大量的代碼沖突,心里有個底,會先看一下誰提交的,哪些commit在master上有,但是我自己的feature/003分支是么有的

 

git log --abbrev-commit feature/001..master

 

如果說你發現master上有好多的commit,別人提交了,你還沒有,此時你應該做一下將master代碼反過來merge到你的feature/003分支上去,讓你的feature分支的代碼跟master分支的代碼保持一致,保持同步

 

此外,還可以看一下,哪些本地master分支的commit需要被推送到遠程倉庫中去,這個的意思就是說,如果你在本地的master上做了不少的提交和修改,可以看一看有哪些代碼是還沒有推送到遠程倉庫里去的

 

git log --abbrev-commit origin/master..HEAD

 

這個用法其實常見於不是master分支,就是如果你在本地開發一個feature分支,然后開發了幾天,結果不小心忘了推送commit到遠程倉庫,某一天你想起來了,此時你就可以看一下,你忘了推送多少個commit到遠程倉庫的feature分支去

 

==================================================================

 

比較少用

 

還可以看一下,在兩個feature分支中都有的commit,但是在master分支中還沒有

 

git log --abbrev-commit feature/001 feature/002 --not master

 

同時也可以看一下哪些commit是存在於兩個分支中的某一個,但是不是兩個分支都有的

 

git log --abbrev-commit feature/001...feature/002

 


免責聲明!

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



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