[英]List all new commits based on the tip of my branch (from all branches including fetched remote ones) that are newer than my staging branch?
我正在尋找確切的命令,以基於暫存分支的提示,列出所有未合並到我的分支中的現有分支(包括從獲取的遠程分支中)的所有提交。
git log --all --remotes
我用它列出所有分支。
如何排除登台分支中已經存在的一次?
使用git log --branches --remotes ^staging
,或等效地,使用git log ^staging --branches --remotes
。
如果要表示所有引用 (包括標簽,注釋, refs/stash
等),則可以使用--all
,但是您專門說了--branches
和--remotes
產生正確匹配項的分支和遠程跟蹤名稱。 請注意,-- --branches
和--remotes
可以帶有=<pattern>
以匹配特定的名稱模式。
這里的技巧是,否定語法( ^X
或--not
后跟X
)告訴修訂版本代碼排除名為X
的提交以及從X
可以到達的任何提交。 正引用給出了git log
開始的位置; 否定引用給git log
停止位置; 然后git log
遍歷優先級隊列,該隊列包含尚未被訪問的提交。 因此,最初,隊列以某種順序查看所有分支提示和所有遠程跟蹤名稱提示(包含其哈希ID)。 除非被排除,否則Git會訪問第一個此類提交,除非它處於staging
的頂端或從staging
的頂端可以到達。 Git將該提交的父級放入隊列,然后訪問隊列中的下一個提交(除非像以前一樣被排除在外)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.