是否有任何方法模拟两个分支之间的git合并,当前工作分支和主分支,但不做任何更改?
当我必须进行git合并时,我经常遇到冲突。有没有办法先模拟合并?
是否有任何方法模拟两个分支之间的git合并,当前工作分支和主分支,但不做任何更改?
当我必须进行git合并时,我经常遇到冲突。有没有办法先模拟合并?
当前回答
我已经能够使用git合并-中止,最近。但是,这只能在存在合并冲突时使用。如果你确定你不想提交,那么使用上面提到的其他方法。
其他回答
你可以使用git merge——no-commit来阻止合并实际被提交,如果你不喜欢合并的工作方式,只需重置到原始头部。
如果您确实不想完成合并,即使它是快进(根据定义,因此没有冲突),您也可以添加——no-ff。
在尝试合并之前,我认为没有一种方法可以模拟将要发生的事情。但是,如果您在执行合并之前确保git状态的输出为空,那么继续尝试它是相当安全的。如果你遇到冲突,你可以立即回到你之前的状态:
git reset --merge
从git 1.7.4开始,你也可以执行以下操作中止合并:
git merge --abort
(正如添加该选项的提交消息所解释的那样,添加此选项是为了与git rebase——abort等保持一致。)
为什么不直接创建一个丢弃的分支(git checkout -b),然后在那里做一个测试合并?
我已经能够使用git合并-中止,最近。但是,这只能在存在合并冲突时使用。如果你确定你不想提交,那么使用上面提到的其他方法。
如果我想比较一个主题分支的变化,我发现最简单和最安全的方法是:
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
这样,主分支就不会改变。