【问题标题】:List commits of a specific merge-commit - children only列出特定合并提交的提交 - 仅限子级
【发布时间】:2021-01-20 12:37:41
【问题描述】:

如何列出特定合并提交 845884 的提交。

例如,在这里,我只想要提交 1、2、3 并且只有它们

*   845884... Merged branch xxxx
|\
| * 68daa7... commit 3
* | a58ec2... commit from master
| |
| * 87da50... commit 2
| |
| * 5e62f9... commit 1
* | 766e1b... commit from master
|/
* 4b8f227

【问题讨论】:

  • 你可以说git log a58ec2..68daa7 只会列出那些修订......但这太简单了,我想知道你是否要求更深层次的概念?
  • 谢谢,但它不起作用...一个间隔会给所有提交...
  • 那么,如果您只想输出提交 1,2 和 3,这样的操作对您有用吗? git log $(git log -1 --merges --pretty=format:%P | awk '{print $(NF)}')...$(git merge-base --octopus $(git log -1 --merges --pretty=format:%P)) --graph --pretty=oneline --abbrev-commit
  • 嗯,这很奇怪,我尝试重新创建您显示的历史记录并且它有效。如果在末尾添加--boundary 选项会怎样?

标签: git git-branch git-commit


【解决方案1】:

试试:

git log --oneline --graph <commitId>^..<commitId>

如果你想排除合并提交本身:

git log --oneline --graph <commitId>^..<commitId>^2

【讨论】:

  • 重读cmets,这个答案和@eftshift0的完全一样。我认为 OP 没有尝试输入它,因为它会给他想要的东西。
  • 是的,我的错误是我将合并提交作为第一项......也感谢@mnestorov......
猜你喜欢
  • 1970-01-01
  • 2019-04-28
  • 2018-10-17
  • 2015-03-04
  • 2014-09-11
  • 2012-07-18
  • 2014-01-22
  • 2016-04-19
相关资源
最近更新 更多