Git:列出所有远程分支上的所有提交记录?

67
我希望能够列出我存储库中所有远程分支的所有提交记录。
我只需要每个提交记录的SHA1值。
5个回答

65

试试这个:

git log --branches="*"

2
这对我的需求过滤更好,因为我可以排除其他作者和合并。 - David Mann
1
记录一下@DavidMann - 你也可以使用rev-list添加作者和合并选项:git rev-list --remotes --author="th3morg*" --date=iso --pretty --branches="*" --no-merges - th3morg
1
请问在这个命令中使用 --all 标志是否意味着与 --branches=* 相同? - Rajesh Swarnkar
zsh:没有找到匹配项:--branches=* - neoexpert
1
@neoexpert 在 * 两侧加上引号。我还更新了答案,这种方式在 bash 和 zsh 中都可以工作。 - Nils

43
以下代码应该可以满足您的需求:
git rev-list --remotes

--remotes选项的文档如下:

--remotes[=<模式>]

假装所有refs/remotes中的引用都像<提交>一样列在命令行上。如果给定了<模式>,则将远程跟踪分支限制为与给定shell glob匹配的分支。如果模式缺少?, ,或[,则在结尾处暗示/。

作为一个吹毛求疵的点,这些是“远程跟踪分支”,而不是“远程分支”——后者在git中是一个有些含糊不清的术语,因为您可能指的是远程存储库中的分支或远程跟踪分支(类似于远程存储库中分支状态的缓存)。


23
git rev-list --all --remotes --pretty - Julio Marins

19

简单:

git rev-list --all --remotes

我希望这能帮到你。

当然,如果你只想列出远程分支上的修订记录(这在90%的情况下会与本地分支中的记录重叠),可以省略 --all 参数。


1
--all 也会包括本地分支。 - Mark Longair
真正是解释的问题。 - sehe

2
如果您需要IT方面的参考资料,请使用以下内容:
git show-ref

0

对于那些想要将它从GUI复制/粘贴到Excel等应用程序中的人来说:

Sourcetree具有“历史”功能,您可以查看所有分支的每个提交,包括描述、时间和作者。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接