【发布时间】:2018-11-22 20:54:37
【问题描述】:
我正在尝试获取特定分支的所有提交 ID 的列表,
我只知道git ls-remote <git-repo-url> | awk '{print $1}' 提供了所有分支/头的最新提交 sha。
我的目标是查找我从git rev-parse <branch_name> 获得的本地最新提交是否存在于从远程检索到的所有提交的列表中。如果是这样,我需要重新设置基准,如果远程上的最新提交 SHA 存在于本地提交 sha 列表中,那么但不是我的最新版本,这意味着我的本地分支已经向前推进,我不需要重新设置基准,只需推送。
【问题讨论】:
-
"而且我不需要做变基,只需推送即可。" -- 如果
<branch1>是当前分支的祖先,git rebase <branch1>没有任何作用.您始终可以在远程分支之上重新调整本地更改。 -
您可以使用
git merge-base --is-ancestor <branch1> <branch2>。如果<branch1>是<branch2>的祖先,它会以代码0退出,并且比您当前的方法快得多。
标签: git git-commit git-log