列出所有基于我的分支的提示(来自所有分支,包括获取的远程分支)的新提交,这些提交比我的分段分支更新?

问题描述 投票:0回答:1

我正在寻找确切的命令来列出所有现有分支的所有提交,这些分支未合并到我的分支(包括来自已获取的远程分支),这些提交基于我的分段分支的提示。

git log --all --remotes我用它来列出所有分支。

如何排除暂存分支中已有的一次?

git
1个回答
1
投票

使用git log --branches --remotes ^staging,或等效地,git log ^staging --branches --remotes

你可以使用--all,如果你的意思是所有引用(包括标签,注释,refs/stash等),但你特别说的分支和远程跟踪名称,--branches--remotes产生正确的匹配。请注意,--branches--remotes可能会跟随=<pattern>以匹配特定的名称模式。

这里的诀窍是否定语法(^X--not后跟X)告诉revision-walk代码排除名为X的提交以及可从X到达的任何提交。积极的参考文献给git log起点;负面的引用给git log停止的地方;然后git log遍历优先级队列,该队列包含尚未访问的提交。因此,最初,队列按某种顺序查看(包含散列ID)所有分支提示和所有远程跟踪名称提示。 Git访问第一个这样的提交,除非它被排除在外,即位于staging的顶端或从staging的顶端可到达。 Git将该提交的父级放入队列,然后访问队列中的下一个提交(除非它被排除,如前所述)。

© www.soinside.com 2019 - 2024. All rights reserved.