有没有办法在实际合并之前检查两个分支之间合并的结果?
当尝试将分支A合并到分支B时,我通常从B检出一个临时分支,将其与分支A合并,然后我创建一个差异补丁,或者只是检查到该临时分支并检查一切是否正常工作在合并A到B之前很好。
git是否提供了可以实现此目的的命令或功能?
答案 0 :(得分:20)
正如Marian Theisen建议的那样,你可以这样做而不提交
进行合并git merge --no-commit <branchname>
您可以退出该合并
git reset --hard
另外,请记住,在Git中备份总是很容易。你可以进行完全合并,包括提交,检查完整的结果,如果你改变主意,你可以
git reset --hard HEAD^
抛弃合并并在合并之前返回提交。
事实上,在合并解决期间的任何时候,你都可以做到
git reset --merge
中止合并并抛弃合并更改。
答案 1 :(得分:17)
我称之为“代码审核工作流程”,并且一直这样做。
git merge --no-commit --no-ff branchname
如果没有--no-ff
标志,如果Git可以快进,那么它就会这样做。 (正如预期的那样,在快进的情况下,没有合并提交来创建。)
为方便起见,我在.gitconfig
设置了此别名:
rev = merge --no-ff --no-commit
这样我就可以做到:
git rev branchname
这个想法是所有功能都是在不同的分支中开发的,每个功能都由作者以外的人审查和合并。正如其他答案所指出的那样,您可以通过以下方式中止合并:
git reset --merge
并要求作者进行更多更改。
要仅使用合并提交查看日志,我使用其他别名:
revlog = log --first-parent
这样,日志就成了大步骤的时间轴:按功能逐行而不是按提交提交。
答案 2 :(得分:3)
为什么要麻烦?只需进行合并,测试它,如果你不喜欢它,那么git reset --hard HEAD^
将回到合并前状态。无论你决定是否要保留合并,进行一些临时或中途合并只会增加你的工作。