git – 合并冲突当本地被删除,但文件存在于远程

我对git很陌生,想知道如何去合并在本地回购我已经删除了主分支上的几个文件,但这些文件存在于远程主分支。

做完git-merge后,显示出现了冲突。

使用git gui它显示本地文件被删除,而远程分支文件有内容。

你如何阻止这些文件发生冲突? 有没有一个简单的方法使用git gui?

非常感谢

你应该解决你认为合适的冲突。 如果该文件真的应该被删除,并且您将会将该更改发布到原始位置,请再次删除该文件:

git rm path/to/file 

如果文件实际上应该被跟踪,添加它(工作树中的版本将是来自原点的版本):

 git add path/to/file 

在做任何一个解决冲突之后,提交合并。

除了被接受的答案之外,作为一个附加的提示,在“被我们删除”的情况下 ,如果您想查看对已删除文件所做的更改,以便您可以在其他地方应用这些更改,可以使用:

 git diff ...origin/master -- path/to/file 

如果它是“被他们删除”的情景,并且您希望看到更改,以便您可以将其应用到别处,则可以使用:

 git diff origin/master... -- path/to/file 

在Git GUI中,select冲突文件,然后右键单击显示冲突文本的主文本区域。

在出现的上下文菜单中,您可以select使用“远程”或使用“本地”。 所以如果一个文件被远程删除,你可以select“远程”在本地传播删除,反之亦然。

花了我一个月的时间来搞清楚,如果Git GUI实际上有文档,那将会很好。

在EGit我也发现了问题。 我的解决scheme是:

  • 使用Git Staging视图。
  • 双击未分离的更改上显示的每个文件以打开比较器
  • 点击“全部从左到右复制”图标
  • 保存文件(它将从未分类的列表中消失)