Git log 仅获取特定分支的提交

标签 git

我想列出仅属于特定分支的所有提交。

通过以下内容,它列出了来自分支的所有提交,也列出了来自父级(master)的所有提交

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/)

更新:

我正在测试我不久前发现的一个新选项,直到现在看来这可能就是我要找的东西:

git log --walk-reflogs mybranch

更新(2013-02-13T15:08):

--walk-reflogs 选项很好,但我检查过 reflogs 是否有过期时间(默认 90 天,gc.reflogExpire)。

我想我找到了我要找的答案:

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 所指出的,您总是在将您的分支与另一个分支进行比较,因此了解您的分支然后选择要比较的分支。

关于Git log 仅获取特定分支的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14848274/

相关文章:

java - 如何从主应用程序外部化语言属性和模板?

git - 如何通过哈希验证 Git 安装程序?

git - Teamcity REST API 在分支上获得最新的成功构建

git - 如何强制 git-status 使用哈希检查差异?

git - 从 github 分支我自己的项目,然后将它推回 github,分支完好无损

git - 有选择地将文件的*部分*与git merge ?

windows - 我如何处理 Windows 上包含符号链接(symbolic link)的 git repo

Github/Cygwin 错误 : cygheap base mismatch detected

git - 仅查看特定分支的 git 日志(带 merge )

ios - 我应该如何删除错误的提交并移动原点