如何在没有实际合并的情况下testing合并
有没有什么办法模拟两个分支,当前工作分支和主,但没有做任何改变之间的git merge
?
当我必须进行git merge
时,我经常发生冲突。 有没有什么方法可以先模拟合并?
我不认为有一种模拟将会发生什么,直到你尝试合并。 但是,如果在合并之前确保git status
的输出为空,那么继续尝试就很安全。 如果发生冲突,您可以立即回到之前的状态:
git reset --merge
既然git 1.7.4,你也可以通过做中止合并:
git merge --abort
(正如添加该选项的提交消息所解释的 ,这是为了与git rebase --abort
等一致而添加的。)
你可以使用git merge --no-commit
来防止合并实际上被提交,如果你不喜欢合并的方式,只需重置到原始头部。
如果你肯定不想完成合并,即使它是一个快进(因此没有冲突,根据定义),你也可以添加--no-ff
。
如果我想比较一个主题分支上的变化,我发现最简单和最安全的做到以下几点:
git checkout master git checkout -b trial_merge git merge topic_branch
合并完成后,很容易看到来自主人的统一变更
git diff master
完成后,只需删除trial_merge分支
git checkout master git branch -D trial_merge
这样,主分支从不改变。
我最近能够使用git merge --abort
。 但是,只有在存在合并冲突的情况下才能使用。 如果您确定不想提交,请使用上面提到的其他方法。
我用 :
git merge --ff-only
根据文件 :
拒绝合并并以非零状态退出,除非当前HEAD已经是最新的或合并可以被解决为快进。
这不是一个真正的模拟,因为在两个分支之间没有冲突的情况下,会有一个快进合并。 但是如果发生冲突,你会被告知,什么都不会发生。
为什么不创build一个一分钱的分支(git checkout -b),并在那里做一个testing合并?