[英]git - changes to branch since created?
我總是問自己一些關於我創建的分支的問題,我還沒有確定如何完成:
現在我想如果弄清楚如何獲取所有提交給分支但未使用git cherry master <branchname>
合並到master中的提交的哈希值。 有了這個我可以通過哈希哈希並弄清楚一切,但如果你有很多提交,這可能是耗時的。 請注意,我不想與當前的主人狀態進行比較。 我認為關鍵是要知道你創建分支的master的哈希值,但我不確定如何確定它。
要查找當前結帳與主分支的分歧,
base=`git merge-base master HEAD`
echo $base
找出自那時以來改變了哪些文件,
git diff --name-only $base HEAD
顯示累積的差異
git diff $base HEAD
當你想要描述一系列提交時,你可以使用上面鏈接的Gabriele Petronella的答案中的語法, master..HEAD
是HEAD ^master
簡寫,這意味着“所有提交都可以從HEAD訪問,但不包括從master可以訪問的提交” 。 缺少端點默認為HEAD,因此您可以說git log --oneline master..
假設你從master
分支,
1.自分支以來哪些文件發生了變化?
git diff master...<branchname> --name-only
2.分支后的完整差異是什么?
git diff master...<branchname>
3.分支后的提交日志是什么?
git log master..<branchname>
如果你簽出了它,你不需要指定<branchname>
(例如, git diff master...
)。
注意: git diff
需要三點...
而git log
需要雙點..
來獲取你要求的行為。
有關點語法的說明,請參閱:
對於更改的文件列表和實際差異,如果您知道要比較的2個提交,則更有意義。
如果你想看到START_SHA1
和END_SHA1
之間的差異,你可以這樣做:
git diff START_SHA1 END_SHA1
如果您只想要文件列表,您可以:
git diff --name-only START_SHA1 END_SHA1
如果您還想知道文件中的更改類型(如A
, M
, D
, C
, R
, U
),您可以執行以下操作:
git diff --name-status START_SHA1 END_SHA1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.