如果my-feature-branch
被合并到my-main-branch
,我如何查看从哪些提交中合并my-feature-branch
?
问问题
28110 次
3 回答
70
git log abc123^..abc123
显示合并到 merge-commit中的提交abc123
。
创建一个git
别名log-merge
以便于重用:
$ git config --global alias.log-merge \
'!f() { git log --stat "$1^..$1"; }; f'
$ git log-merge abc123
对于单行版本:
$ git config --global alias.log-merge-short \
'!f() { git log --pretty=oneline "$1^..$1"; }; f'
于 2014-05-07T03:30:57.547 回答
49
如果您想查看上次合并中合并的每个提交,您可以尝试:
git log $(git merge-base --octopus \
$(git log -1 --merges --pretty=format:%P)).. --boundary
这是我当前日志的示例:
$ git log --graph --pretty=oneline --abbrev-commit
* 44899b9 pouf
* 8f49f9c Merge branch 'test'
|\
| * 3db39ca test
* | 69f431c pif
* | df1f51c lala
|/
* 8fae178 pif2
* 20f8ba6 init
如果我只想要与最后一次合并相关的提交,我必须使用git log -1 --merges --pretty=format:%P
它给我提供第一个合并的父母:
$ git log -1 --merges --pretty=format:%P
69f431cec7859b61d33c7503c9431ceea2aaf3e0 3db39ca3ab1e8f70462db23d94590628b5e7ad7b
现在我知道我需要跟踪哪些父母,我需要他们可以通过以下方式获得的共同基础git merge-base --octopus
(--octopus 以防万一):
$ git merge-base --octopus \
$(git log -1 --merges \
--pretty=format:%P)
8fae178666e34a480b22e40f858efd9e7c66c3ca
现在,git log
我可以搜索从基础到当前的每个提交HEAD
:
$ git log $(git merge-base --octopus \
$(git log -1 --merges --pretty=format:%P)).. \
--boundary --graph --pretty=oneline --abbrev-commit
* 44899b9 pouf
* 8f49f9c Merge branch 'test'
|\
| * 3db39ca test
* | 69f431c pif
* | df1f51c lala
|/
o 8fae178 pif2
如果你有点完美主义,你也可以这样做:
$ git log
$(git merge-base --octopus \
$(git log -1 \
--merges --pretty=format:%P))..$(git log -1 --merges --pretty=format:%H) \
--boundary --graph --pretty=oneline --abbrev-commit
* 8f49f9c Merge branch 'test'
|\
| * 3db39ca test
* | 69f431c pif
* | df1f51c lala
|/
o 8fae178 pif2
现在我想我会把它作为别名:)
这些--graph --pretty=oneline --abbrev-commit
选项是可选的。
资源 :
于 2011-05-31T18:26:16.467 回答
0
如果你有一个合并提交(比如a2345
)并且说git log -1 a2345
,它会告诉你父母的名字(即在这个提交中合并的提交)。那是你要找的吗?
于 2011-05-31T17:22:53.570 回答