ome*_*zig 4 linux git scripting git-branch
我有branch1并且branch2想要某种:
git branch1 isahead branch2
这将显示是否branch1有branch2不包含的提交(并可能也指定那些提交)。我无法检查diff原因branch2 是否提前branch1(具有branch1没有的提交)。
有办法吗?我看了一下git diff却找不到任何东西
matthiasbe 的答案对于很多用途来说都很好,但是对于脚本编写,只要你的 Git 不是太古老,1,你通常会想要使用:
if git merge-base --is-ancestor commit-specifier-1 commit-specifier-2; then
# commit specifier #1 is an ancestor of commit specifier 2
else
# commit specifier #1 is NOT an ancestor of commit specifier 2
fi
Run Code Online (Sandbox Code Playgroud)
作为测试。这是因为git merge-base --is-ancestor将结果编码为其退出状态,这样您就不必运行单独的测试来将数字与某些内容进行比较。
请注意,一个分支尖端可能位于另一分支尖端之前和之后:
$ git rev-list --left-right --count stash-exp...master
1 6473
Run Code Online (Sandbox Code Playgroud)
在这里,两个指定的提交都不是另一个的祖先。然而,考虑到这些其他说明符:
$ git rev-list --left-right --count master...origin/master
0 103
Run Code Online (Sandbox Code Playgroud)
我们看到master这里严格落后origin/master于 ,因此:
$ git merge-base --is-ancestor master origin/master && echo can fast-forward
can fast-forward
Run Code Online (Sandbox Code Playgroud)
这与您从看到 0 计数中得到的答案相同git rev-list --count origin/master..master:
$ git rev-list --count origin/master..master
0
Run Code Online (Sandbox Code Playgroud)
1git merge-base --is-ancestor在 Git 版本 1.8.0 中引入。某些系统仍在使用 Git 1.7...
| 归档时间: |
|
| 查看次数: |
976 次 |
| 最近记录: |