【发布时间】:2011-09-05 16:13:32
【问题描述】:
如果 my-feature-branch 被合并到 my-main-branch 中,我如何查看从 my-feature-branch 合并的提交?
【问题讨论】:
标签: git branch git-merge git-commit git-log
如果 my-feature-branch 被合并到 my-main-branch 中,我如何查看从 my-feature-branch 合并的提交?
【问题讨论】:
标签: git branch git-merge git-commit git-log
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'
【讨论】:
$ git config --global alias.merge-log-short '!f() { git log --pretty=oneline "$1^..$1"; }; f'
如果您想查看上次合并中合并的每个提交,您可以尝试:
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 选项是可选的。
资源:
【讨论】:
如果你有一个合并提交(比如a2345)并说git log -1 a2345,它会告诉你父母的名字(即在这个提交中合并的提交)。这就是你要找的吗?
【讨论】:
-1。删除它,您将获得常规日志。
-1 它会显示所有提交消息的所有日志,这似乎没有用