0

是的,这听起来可能有点奇怪,但我认为我做了一些愚蠢的事情。

我有两个不同的分支(更改数量很少),我想将一些更改从一个合并到另一个。所以,在 Git Extensions 中,我选择了 Commands > Merge Branches。

不幸的是,它没有给我管理合并冲突的选项,而是在点击 OK 后自动完​​成。由于这不是我想要的,我试图找到一种方法来尝试回滚。

我最终做的是为其中一个分支选择最后一个 Commit(在合并之前,但是从任一分支出来的最新 Commit)并硬重置回它。

我没有将事物恢复到以前的状态(即没有发生合并),而是留下了两个分支的 git 扩展中的单个红线,每个分支都是相同的,并且是最新版本(即 post-合并)。我仍然可以在两个分支之间切换,但它们之间没有明显的区别。

所以这基本上就是我想做的(我为这张图的粗鲁道歉,我不确定如何最好地显示它):

Branch 1
   x---------------y
          \
           \ 
   x--------x------y
Branch 2

我有一些更改,我想从分支 1 合并到分支 2,但我想将它们分开,并且我不想合并所有更改。

我在上面犯的错误可以挽回吗?这样做的正确方法是什么?

4

1 回答 1

1

听起来您将两个分支重置为同一个提交。您应该在该分支上合并之前将每个分支重置为提交。

所以,在这张图中

Branch1
   A------
          \
           \ 
   B--------C------D
Branch2

git checkout Branch1
git reset --hard A
git checkout Branch2
git reset --hard B

之后,您可以使用git cherry-pick从一个分支中选择特定提交并将它们复制到另一个分支上。

所以,要创建这个图表

Branch1
   E-----G---------I
          \
           \ 
   F--------H
Branch2

git checkout Branch2
git cherry-pick G
于 2013-05-20T20:30:16.017 回答