2017-10-08 104 views
0

我有一个主分支,其中有一个文件Demo.txt。它具有以下2行:

AAAAAA
BBBBBB

甲新分支Dev已经被从主此时分支。分支开发现在包含Demo.txt同为2线,即

AAAAAA
BBBBBB
还原一个合并冲突的合并,并已被推送到远程合并的冲突

让我们假设我签主,并添加一个新行Demo.txt使该文件变为:

AAAAAA
BBBBBB
XXXXXX

同样,我再结帐开发和添加新线Demo.txt使该文件变为:

AAAAAA
BBBBBB
YYYYYY

现在我签主人和合并开发了进去。第三行文件Demo.txt中存在合并冲突。让我们假设通过保持master和Dev分支的条目来解决冲突。让我们假设合并后的新文件看起来像:

AAAAAA
BBBBBB
XXXXXX
YYYYYY

现在我犯了合并,并将它推到远程存储库。让我们假设合并的提交ID是类似abcdef056fg(仅作为示例)。在推送合并之后,我发现解决合并冲突时出现了一些错误,我想回滚合并。另外,我想在将错误修复程序再次合并为主程序之前,将另外一项更改添加到错误修复程序的一部分中。根据Linus Torvalds在此链接中给出的指导 - “https://raw.githubusercontent.com/git/git/master/Documentation/howto/revert-a-faulty-merge.txt”,我恢复了合并abcdef056fg的恢复。例如, 我签出master,执行“revert -m 1 abcdef056fg”,这会给我一个新的提交。我再次提交提交以恢复还原。复归合并的复归给我下面的Demo.txt:

AAAAAA
BBBBBB
XXXXXX
YYYYYY

我然后结帐开发和添加新的文件Demo2.txt将其与下面的行;

PPPPPP

我现在结账主,并再次合并开发。新文件Demo2.txt被正确地合并到master中。但我没有再次解决Demo.txt的合并冲突的选项。假设我想让合并冲突在Demo中再次出现。TXT,这样我可以将其更改为以下内容:

AAAAAA
BBBBBB
YYYYYY
XXXXXX

代替

AAAAAA
BBBBBB
XXXXXX
YYYYYY

我该怎么做。我不想直接对我的主人进行更改,因为我保持主分支清洁,不要对其进行任何开发。所有的开发工作都在开发分支完成,并且最终被测试并合并到主开发环境中。这也是一个有着单一冲突的人为的例子。任何这样的合并可能会有几个已经解决和承诺的冲突,我不想修复主人中的所有冲突。那我该怎么做呢?

+1

[如何解决Git中的合并冲突?](https://stackoverflow.com/questions/161813/how-to-resolve-merge-conflicts-in-git) – kRiZ

回答

0

我找到了这个问题的答案。答案在于,有一个明显的错误,其中进行了上述合并。我提到我的意图是保持主分支始终清洁,没有发展,但在第一次合并之前,我在master中添加了第三行XXXXXX到Demo.txt。这是一个矛盾。现在已增加XXXXXX,我应该先合并掌握到开发合并开发前回master.Doing事先将给予在Demo.txt合并冲突这本来按规定解析为如下:

AAAAAA
BBBBBB
XXXXXX
YYYYYY

如果我再合并到主这本来是一个与Demo.txt向前伸直合并在主其余为:

AAAAAA
BBBBBB
XXXXXX
YYYYYY

现在恢复的复归于主会保持Demo.txt同上。 现在,如果我检查了开发用于错误修正(除了添加Demo2.txt)和固定Demo.txt如下:

AAAAAA
BBBBBB
YYYYYY
XXXXXX

和签出主再次合并到开发高手,GIT中会解决Demo.txt在主用下面四行没有给合并冲突:

AAAAAA
BBBBBB
YYYYYY
XXXXXX

这解决了我们的目的。

不删除问题,因为这可能是一些有用的分析。