我想在 当前树中获取所有分支的日志。
长篇故事
鉴于下面的git历史:
$ git log --all --decorate --oneline --graph
* 3d0cb35 (HEAD, master) 4th commit
| * a43b07c (branch) 4th commit in branch
|/
* 722745a 3rd commit
* 46d0d84 2nd commit
* 3060fe0 1st commit
假设我创建了一个孤儿分支。
$ git checkout --orphan orphan
Switched to a new branch 'orphan'
在orphan分支中添加提交,并尝试使用第一个命令获取“第二个”树的git历史记录。
$ git log --all --decorate --oneline --graph
* 202f3c4 (HEAD, orphan) Orphan branch
* 3d0cb35 (master) 4th commit
| * a43b07c (branch) 4th commit in branch
|/
* 722745a 3rd commit
* 46d0d84 2nd commit
* 3060fe0 1st commit
在上面的示例中,看起来3d0cb35
是202f3c4
的父亲,这是不正确的。我怎样才能只提交 其中一棵树?
答案 0 :(得分:4)
我不确定是否有一种完全干净的方式来做你想做的事。但是这里有一个建议......如果您知道要检查的分支集合是以提交3060fe0
为根的分支,那么您可以使用git branch --contains 3060fe0
来识别潜在的分支,并使用它来提供git log
命令。类似的东西:
git log ..... `git branch --contains 3060fe0`
但请忽略--all
选项,因为这会覆盖您的显式分支选择......
为方便起见,您可以在每个树根上删除标记,例如git tag tree1 3060fe0
,然后您可以使用git branch --contains tree1
。