我正在尝试获取特定分支的所有提交ID的列表,
我只知道git ls-remote <git-repo-url> | awk '{print $1}'
给出了所有分支/头的最新提交。
我的目标是查找从git rev-parse <branch_name>
获得的本地最新提交是否存在于从远程检索到的所有提交的列表中。如果是这样我需要重新定义,如果远程的最新提交SHA存在于本地提交sha的列表中,那么这不是我最新的,这意味着我的分支本地已经向前移动,我不需要做rebase而只是推送。 / p>
答案 0 :(得分:1)
如果您要尝试做的是确定您的本地分支机构是否已从远程分支分道,我认为git-log
和git 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是更好的选择,因为您只需检查退出代码即可。