簡體   English   中英

列出比我的登台分支新的分支(來自所有分支,包括獲取的遠程分支)的所有新提交?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM