[英]Weird output for git log --merges when merging feature branches
我有以下Git存儲庫樹:
C
|\
| B
|/
A
A: No parents. Initial commit.
Contains foo with content "ABC".
B: Parents: A. "Commit on feature branch".
Contains foo with content "XYZ".
C: Parents: A, B. "Merge of feature branch".
Contains foo with content "XYZ".
我期望git log --merges foo
向我展示C
,但是,日志為空! 僅當我也指定--first-parent
,它才會顯示合並提交C
為什么會這樣? 這是Git的默認歷史記錄簡化中的錯誤嗎?
不幸的是,Git docs( https://git-scm.com/docs/git-log#_history_simplification )中的歷史記錄簡化示例並不包含與此處相同的情況(盡管這可能是最常見的情況... )。
有人知道嗎? 我很確定這與Git的默認歷史記錄簡化算法有關,因為如果我指定--full-history
,也會顯示合並提交C
由於某種原因,默認值是否僅跟隨提交中的第二個父級?
我在Git郵件列表上問了同樣的問題,並得到了適當的答案:
向日志詢問單個文件確實可以簡化歷史記錄。 由於提交C完全使用了B,因此從日志輸出中刪除了對A的更改集。 與B的比較是TREESAME,因此也被修剪->沒有輸出。
有關更多信息,請參見http://thread.gmane.org/gmane.comp.version-control.git/281256 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.