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

时间:2010-08-30 13:22:41

标签: git branch

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

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

我想要的是能够准确查看我的仓库中不在主仓中的任何分支中的更改。有没有办法做到这一点

提前致谢。

5 个答案:

答案 0 :(得分:176)

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

git branch --no-merged master

列出相关提交:

git cherry -v master <branch>

答案 1 :(得分:15)

当我试图记住......

的语法时,我遇到了这个问题
git log <branch> --not master --stat

这将显示对&lt; branch&gt;的提交尚未合并为主人的。 --stat将包含随提交更改的文件。您还可以使用它来比较任何两个分支,方法是用不同的分支名称替换master。

答案 2 :(得分:0)

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

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

git log --all --not master

或者,等效地:

git log --all ^master

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

答案 3 :(得分:0)

对于 PowerShell 人员,请结合上面所说的内容。如果需要,将 master 替换为 main。通过粘贴到您的外壳中进行测试。

$notMergedList = (git branch --no-merged master) -replace " ", ""
ForEach($branchItem in $notMergedList) {
  write-host "~~> branch: $branchItem" -Foregroundcolor DarkCyan
  git cherry -v master $branchItem }

答案 4 :(得分:-7)

使用gitk很容易概述您的分支机构。