我想列出仅属于特定分支的所有提交。
通过以下内容,它列出了来自分支的所有提交,也列出了来自父级(主)的所有提交
git log mybranch
我发现的另一个选项是排除 master 可到达的提交并给我我想要的东西,但我想避免需要知道其他分支名称。
git log mybranch --not master
我试图使用git for-each-ref
,但它也列出了 mybranch 所以实际上它排除了所有:
git log mybranch --not $(git for-each-ref --format '^%(refname:short)' refs/heads/)
Update:
我正在测试不久前发现的一个新选项,到目前为止似乎这可能就是我正在寻找的:
git log --walk-reflogs mybranch
更新(2013-02-13T15:08):
--walk-reflogs 选项很好,但我检查了 reflogs 是否有过期时间(默认 90 天,gc.reflogExpire http://www.kernel.org/pub/software/scm/git/docs/git-gc.html).
我想我找到了我正在寻找的答案:
git log mybranch --not $(git for-each-ref --format='%(refname)' refs/heads/ | grep -v "refs/heads/mybranch")
我只是从可用分支列表中删除当前分支,并使用该列表从日志中排除。这样我只能得到那些提交仅由 mybranch 到达.
听起来你应该使用cherry
:
git cherry -v develop mybranch
这将显示其中包含的所有提交mybranch,但不在develop。如果您省略最后一个选项(mybranch),它将比较当前分支。
正如 VonC 指出的那样,您总是将您的分支与另一个分支进行比较,因此了解您的分支,然后选择要比较的分支。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)