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