如何在 Git 中列出所有未合并的更改?

为不同的主题创建一个分支,并且在我不再需要它们的时候不会定期删除它们,现在我已经有了大约50个分支。

我尝试删除分支,但其中一些分支有未合并的更改。

我想要的是能够确切地看到在我的回购中的任何分支中有什么变化,而这些变化不在 master中。有办法吗?

52079 次浏览

使用 gitk很容易得到分支的概况。

列出没有合并到 master 中的分支:

git branch --no-merged master

列出相关的承诺:

git cherry -v master <branch>

这个问题是我在试图回忆..。

git log <branch> --not master --stat

这将显示尚未合并到 master 的对 < Branch > 的提交。Stat 将包括提交时更改的文件。您还可以使用这个命令将 master 替换为不同的分支名,从而比较任意两个分支。

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

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

git log --all --not master

或者,相当于:

git log --all ^master

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

对于 PowerShell 的员工来说,这是上述观点的一个小组合。如果需要,用 main代替 master。通过粘贴到 shell 中进行测试。

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