【发布时间】:2011-04-05 18:28:41
【问题描述】:
为各种主题创建一个分支,并且在我不再需要它们时不定期删除它们,我现在已经完成了大约 50 个分支。
我尝试删除分支,但其中一些有未合并的更改。
我想要的是能够准确查看我的 repo 的任何分支中存在哪些不在 master 中的更改。有没有办法做到这一点?
【问题讨论】:
为各种主题创建一个分支,并且在我不再需要它们时不定期删除它们,我现在已经完成了大约 50 个分支。
我尝试删除分支,但其中一些有未合并的更改。
我想要的是能够准确查看我的 repo 的任何分支中存在哪些不在 master 中的更改。有没有办法做到这一点?
【问题讨论】:
对于 PowerShell 人来说,上面所说的内容的一点组合。如果需要,请将 master 替换为 main。通过粘贴到您的 shell 中进行测试。
$notMergedList = (git branch --no-merged master) -replace " ", ""
ForEach($branchItem in $notMergedList) {
write-host "~~> branch: $branchItem" -Foregroundcolor DarkCyan
git cherry -v master $branchItem }
【讨论】:
这个问题已经很好回答了,但我认为还有一个答案值得记录:
列出尚未与 master 合并的任何分支上的所有提交:
git log --all --not master
或者,等效地:
git log --all ^master
--all 选择所有分支,因此您不必列出它们,然后 --not master 或 ^master 从选择中删除 master。
【讨论】:
git log --all --not master --graph --pretty=format:"%C(auto)%h%d%Creset %C(cyan)(%ci)%Creset %C(green)%cn <%ce>%Creset %s" --name-status --date=short
当我试图记住...的语法时遇到了这个问题
git log <branch> --not master --stat
这将显示对
【讨论】:
列出未合并到 master 的提交的分支:
git branch --no-merged master
列出相关的提交:
git cherry -v master <branch>
【讨论】:
-a 标志以包含远程分支。
master替换为origin作为上游。
-a参数将显示本地和远程分支,-r将仅显示远程分支。
使用gitk 可以很容易地了解您的分支机构。
【讨论】: