如何解决git中重命名文件夹或文件的冲突问题?

6

我有以下问题:

我有一些共同的提交A,这个提交分别在两个分支Branch1和 Branch2中。

  • Branch1是一个公共分支(位于服务器上)
  • Branch2是本地分支

在Branch1中,我更改了文件(BAD_folder/somefile.txt)。更改已经推送到服务器。在Branch2中,我将BAD_folder重命名为folder并在somefile.txt中进行了一些更改。我想合并Branch1和Branch2,但我在BAD_folder/somefile.txt文件中遇到了合并冲突。

我该如何解决这个问题?


你是将Branch1合并到Branch2还是将Branch2合并到你的Branch1?你有哪些冲突? - rocambille
@wasthishelpful,同样的问题。主要问题是将来自不同(在git理解中)文件的更改应用。 - Alex Aparin
@wasthishelpful:通常情况下,git merge是对称的——因此合并在哪个分支上并不重要。 - sleske
@sleske 是的,我在考虑另一种情况。我的错。 - rocambille
1个回答

5
您可以将folder重命名为BAD_folder,合并或变基Branch2(当此分支为本地分支时可能更好),然后将文件夹重新命名回来。
以下是操作步骤:
  1. git checkout -b _tmp Branch1
  2. git mv folder BAD_folder && git commit
  3. git merge Branch2
  4. git mv BAD_folder && git commit
当您执行变基操作时,您可以进行额外的git rebase -i Branch1操作,并删除两个git mv操作。
请注意,在第3步中,如果文件名未更改,则merge操作效果更好,但您仍可能需要解决冲突。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接