以下是分支/提交历史记录的示例图表:
A--- master
|\
| B-----G--------P feature2
|\ \ \
| -----F--J--L--O--Q integration
|\ / / /
| C--E--H--K / feature1
\ /
D---------M feature3
在正常情况下,我们将集成分支合并到master并完成。 但是......有一些例外情况,只有一些特定的功能必须合并到主... ex:only feature1。 在这种情况下,feature1分支合并为master(commit R):
A-------------------------R master
|\ /
| B-----G--------P / feature2
|\ \ \ /
| -----F--J--L--O--Q / integration
|\ / / / /
| C--E--H--K--/------ feature1
\ /
D---------M feature3
问题:我想要一个命令,告诉我哪些分支在集成中合并但不在master中合并。结果应为:feature2和feature3。
这两个命令之间的交叉引用是唯一的方法吗?
git branch --no-merged master
git branch --merged integration
或者,它也可以是在master中不存在的集成分支中列出合并提交的命令。结果应为:J,O,Q
答案 0 :(得分:18)
comm -12 <(sort <(git branch --no-merged master)) <(sort <(git branch --merged integration))