linux查看git是否运行,关于linux:使用脚本检查git分支是否领先于另一个
我有branch1和branch2,我想要某種形式:
git branch1 isahead branch2
這將顯示branch1是否具有branch2沒有的提交(并且可能還指定了那些提交)。 我無法檢查差異原因branch2是否超出branch1(已提交branch1沒有)。
有辦法嗎? 我查看git diff并找不到任何內容
我認為"前方"或"后方"一詞僅適用于將本地分支與遠程分支進行比較。 我不確定使用比較兩個分支的術語是否有意義,因為它可能有完全不同的歷史。
您可以使用
git log branch2..branch1
如果branch1在branch2之前沒有提交,則輸出將為空。
您也可以使用git rev-list --count branch2..branch1
這將顯示未來的提交數量
資源
兩者都很棒 - 第二個更適合腳本。 謝謝!
--right-only(或任何相關選項)僅適用于三點對稱差異語法。 這里沒有效果,可以簡單地省略。
謝謝你,我根據你的評論編輯了答案;)
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
作為測試。這是因為git merge-base --is-ancestor將結果編碼為退出狀態,因此您無需運行單獨的測試來將數字與某些內容進行比較。
請注意,一個分支尖端可能在另一個分支尖端之前和之后:
$ git rev-list --left-right --count stash-exp...master
1 ? ? ? 6473
這里,指定的提交都不是另一個的祖先。但是,鑒于這些其他說明符:
$ git rev-list --left-right --count master...origin/master
0 ? ? ? 103
我們看到master嚴格地落后于origin/master,所以:
$ git merge-base --is-ancestor master origin/master && echo can fast-forward
can fast-forward
從查看git rev-list --count origin/master..master的零計數得到的答案是一樣的:
$ git rev-list --count origin/master..master
0
在Git版本1.8.0中引入了1 git merge-base --is-ancestor。一些系統仍在使用Git 1.7 ...
你已經得到了答案。所以我會添加更多內容。
git cherry命令可用于執行此操作。
git cherry branch1 branch2
這將列出branch2中的提交,但不包括branch1中的提交。如果需要,可以使用-v標志使其與哈希一起打印提交消息。
git cherry -v branch1 branch2
https://git-scm.com/docs/git-cherry
希望能幫助到你 :)
總結
以上是生活随笔為你收集整理的linux查看git是否运行,关于linux:使用脚本检查git分支是否领先于另一个的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux fastQC 操作命令,li
- 下一篇: linux shell if运行,bas