合并时Git覆盖文件更改

时间:2015-07-14 00:38:36

标签: git

我有一个git存储库,其中一个队友分叉分支并进行提交然后重新合并然后还原以及其他一些我不清楚的步骤......这些更改然后在合并之上提交了提交。这导致我的更改被覆盖,以便合并本身从COMMIT 3引入其他分支更改,如果我尝试进行硬重置并重新合并,则始终重写。我已尝试应用补丁但由于COMMIT 3中的更改,我不能只应用提交1的补丁,我不希望在5个不同的目录中创建.gitattributes并指定合并策略,如下所示:{{3 }。

是否有更简单的方法来合并并保留我的更改?

此图表应显示提交结构:

HEAD
  |
COMMIT 1
  |
COMMIT 2  <-- MERGE branch mainline
  |     \
  |     BRANCH-COMMIT 1  
  |           |
  |     BRANCH-COMMIT 2
  |           |
COMMIT 3      |
  |    \      |
  |  COMMIT   |
  *    |      *
       *

1 个答案:

答案 0 :(得分:0)

在这种情况下,变基不起作用。这里的问题是fork是由于重置和重新合并,由于某种原因导致一些提交被覆盖。然而,最初所有BRANCH-COMMIT- *都合并为主线。

为了解决这个问题,我创建了一个补丁,其中包含所有被覆盖的提交并重新应用了补丁:

git format-patch BRANCH-COMMIT-2^..BRANCH-COMMIT-1 --stdout > feature.patch
git am --signoff < ~/feature.patch