是的,这可能听起来有点奇怪,但我觉得我做了些蠢事。
我有两个不同的分支(只有很少的变化),我想将一些变化从一个变为另一个。所以,在Git Extensions中,我去了Commands>合并分支。
不幸的是,它没有给我管理合并冲突的选项,而是在点击OK之后自动完成了它。由于这不是我想要的,我试图找到一种方法来尝试回滚。
我最终做的是选择其中一个分支的最后一个Commit(在合并之前,但是从任一分支中最新的Commit)并且硬重置回它。
不是将事物恢复到以前的状态(即合并没有发生),而是留下了两个分支的git扩展中的单个红线,每个都是相同的,以及最新的版本(即合并后)。我仍然可以在两个分支之间切换,但它们之间没有明显的区别。
所以这基本上就是我想做的事情(我为这个图表的粗略而道歉,我不确定如何最好地展示它):
Branch 1
x---------------y
\
\
x--------x------y
Branch 2
我想要从分支1合并到分支2中进行更改,但我希望将它们分开,并且我不想合并所有更改。
我上面提到的错误可以归还吗?什么是正确的方法呢?
答案 0 :(得分:1)
听起来你将两个分支重置为同一个提交。您应该在该分支上合并之前将每个分支重置为提交。
所以,在这个图中
Branch1
A------
\
\
B--------C------D
Branch2
DO
git checkout Branch1
git reset --hard A
git checkout Branch2
git reset --hard B
之后,您可以使用git cherry-pick
从一个分支中选择特定提交,然后将它们复制到另一个分支上。
所以,要创建此图
Branch1
E-----G---------I
\
\
F--------H
Branch2
DO
git checkout Branch2
git cherry-pick G