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

时间:2018-06-13 10:02:49

标签: git git-commit git-log

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

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

我的目标是查找从git rev-parse <branch_name>获得的本地最新提交是否存在于从远程检索到的所有提交的列表中。如果是这样我需要重新定义,如果远程的最新提交SHA存在于本地提交sha的列表中,那么这不是我最新的,这意味着我的分支本地已经向前移动,我不需要做rebase而只是推送。 / p>

1 个答案:

答案 0 :(得分:1)

如果您要尝试做的是确定您的本地分支机构是否已从远程分支分道,我认为git-loggit log <local-branch>...<remote-branch> --oneline 更好地为您服务triple-dot notation。例如:

local-branch

会为您提供remote-branch--left-right而非的提交列表。

如果您还添加git log <local-branch>...<remote-branch> --oneline --left-right ,您将获得提交所在的一面的指示:

<

其中>表示提交位于左侧而右侧,而struct myRow { var title: String = "" var isSelected: Bool = false } 表示位于右侧但不位于左侧 >

修改,除非您正在编写脚本,在这种情况下,git-merge-base--is-ancestor&#39}中建议使用@axiac选项comment是更好的选择,因为您只需检查退出代码即可。

相关问题