如何从本地和远程分支获取所有提交 SHA ID?



我正在尝试获取特定分支的所有提交 id 的列表,

我只知道git ls-remote <git-repo-url> | awk '{print $1}'给出了所有分支/头的最新提交。

我的目标是找出我从git rev-parse <branch_name>获得的本地最新提交是否存在于从远程检索的所有提交的列表中。 如果是这样,我需要变基,如果远程上的最新提交 SHA 存在于本地提交 sha 列表中,那么但不是我的最新提交,这意味着我的分支在本地已经前进,我不需要变基,只需推送。

如果您要做的是确定您的本地分支是否与远程分支不同,我认为git-log和三点符号会更好地为您服务。例如:

git log <local-branch>...<remote-branch> --oneline

将为您提供一个提交列表,这些提交位于local-branchremote-branch中,但不能同时位于两者中。

如果您还添加了--left-right,您将获得提交在哪一边的指示:

git log <local-branch>...<remote-branch> --oneline --left-right

其中<表示提交在左侧但不在右侧,而>表示在右侧但不在左侧

编辑:除非您正在编写脚本,在这种情况下,git-merge-base@axiac注释中建议的--is-ancestor选项是更好的选择,因为您可以检查退出代码。

相关内容

  • 没有找到相关文章

最新更新