我想要做的是版本檢查。我想確保代碼保持在最低版本之上。所以我需要一種方法來知道當前分支是否包含指定的提交。給定一個提交ID,如何確定當前分支是否包含提交?
10
A
回答
6
有多種方式如何做到這一點,但您可以使用git log
,然後搜索特定提交採用grep
作爲最簡單的選擇,但不總是精確。
git log | grep <commit_id>
另一種選擇是使用以下方法來獲取true
或false
答案
if [ 0 -eq $(git branch $(git rev-parse --abbrev-ref HEAD) --contains <<<commit_id>>> > /dev/null 2> /dev/null; echo $?) ]; then echo "true"; else echo "false"; fi
16
獲取包含特定提交的分支的列表。
$ git branch --contains <commit-id> # get all the branches where the commit exists
檢查分支是否具有特定的提交。
$ git branch --contains <commit-id> | grep <branch-name> # output the branch-name if the commit exists in that branch
編輯:搜索與精確匹配的分支(比如,feature
)。
$ git branch --contains <commit-id> | grep -E '(^|\s)feature$'
例如,如果你有3個分支叫feature
,feature1
,feature2
然後
$ git branch --contains <commit-id> | grep 'feature'
feature
feature1
feature2
$ git branch --contains <commit-id> | grep -E '(^|\s)feature$'
feature
+0
這裏的'grep'也可能導致錯誤的肯定,如果有其他分支包含提交的名稱也包含'
+1
是@AdamSpiers,用'grep -E'(^ | \ s)branchname $''' –
相關問題
- 1. 確定當前分支/提交ID
- 2. 確定是否提交TransactionScope
- 3. 確定Git存儲庫是否包含特定提交
- 4. 如何檢查當前分支中是否沒有提交?
- 5. 在提交模板中包含當前分支名稱
- 6. 如何確定DataGridView是否包含綁定到SqlDataAdapter時未提交的更改
- 7. 如何列出在git2go(libgit2)中包含給定提交的分支?
- 8. (git):如何從上游分支提交特定提交?
- 9. Git當前分支提交列表
- 10. 如何檢查特定分支上的提交是否存在
- 11. 如何從提交ID找到分支
- 12. 如何確定比賽得分是否已提交
- 13. 確定將表單提交給當前頁面的頁面?
- 14. 你的分支提前1次提交
- 15. 你的分支提前1次提交
- 16. zsh - 顯示git分支是否有提交過的提交
- 17. 如何以編程方式確定提交是否在當前結帳
- 18. 刪除一個包含其提交的分支
- 19. Git - 從以前的提交和拆分提交歷史分支
- 20. 創建提交覆蓋當前分支內容與另一個
- 21. 查找包含與給定子模塊提交對應的模塊提交
- 22. 如何獲得提交ID與以前的一個diff提交,如果我不知道哪一個是以前
- 23. 如何確定兩個長方體是否相交(包含包含)
- 24. git是否提交整個提交行?
- 25. svn分支提交 - 實驗提交
- 26. 如何合併僅包含在git分支中的提交
- 27. 如何將分支(或指定的提交)移動到另一個分支?
- 28. 將未提交的變更通過Git提交給一個新分支
- 29. 確定在哪個分支上發生提交
- 30. Subversion將未提交的更改提交到一個新分支
的可能的複製[如何列出包含給定提交的分支?](http://stackoverflow.com/問題/ 1419623/how-to-list-branches-that-contain-a-given-commit) – kowsky
請參閱建議的副本以瞭解如何查找包含指定提交的* all *分支。要確定* current *分支是否包含commit * C *,請使用「plumbing」命令'git merge-base --is-ancestor'。當前分支包含* C *,如果* C *是HEAD的祖先,那麼:'如果git merge-base --is-ancestor $ hash HEAD;然後回聲我包含提交$哈希;其他回聲我不包含提交$散列; fi' – torek
嗨,請提交這個答案,以便它可以被選爲正確答案=) – Ben