Git:列出git中所有未合并的更改

Lak*_*sad 113 git branch

为各种主题创建一个分支,并且当我不再需要它们时不定期删除它们,我现在最终有大约50个分支;)

我尝试删除分支,其中一些有未更改的更改.

我想要的是能够确切地看到我的仓库中不在主仓中的任何分支中的变化.有没有办法做到这一点

提前致谢.

gaw*_*awi 196

要列出未合并到master中的提交的分支:

git branch --no-merged master
Run Code Online (Sandbox Code Playgroud)

列出相关提交:

git cherry -v master <branch>
Run Code Online (Sandbox Code Playgroud)

  • 添加`-a`标志以包含远程分支. (19认同)
  • "git branch --no-merged master"没有显示远程分支 - 这些线索也可以看到? (5认同)
  • 请注意,由squash&merge合并的分支仍然会显示差异,即使没有. (2认同)

小智 20

当我试图记住......的语法时,我遇到了这个问题.

git log <branch> --not master --stat
Run Code Online (Sandbox Code Playgroud)

这将显示尚未合并到master的<branch>的提交.--stat将包含随提交更改的文件.您还可以使用它来通过使用不同的分支名称替换master来比较任何两个分支.


joa*_*nis 7

这个问题已经得到了很好的回答,但我认为还有一个答案值得记录:

列出尚未与 master 合并的任何分支上的所有提交:

git log --all --not master
Run Code Online (Sandbox Code Playgroud)

或者,等效地:

git log --all ^master
Run Code Online (Sandbox Code Playgroud)

选取--all所有分支,因此您不必列出它们,然后--not master^master从选择中删除主分支。

  • + 一些格式以获得更优雅的输出 `git log --all --not master --graph --pretty=format:"%C(auto)%h%d%Creset %C(cyan)(%ci)%Creset %C(绿色)%cn &lt;%ce&gt;%Creset %s" --name-status --date=short` (2认同)