在Visual Studio中合并后发生冲突时,某些文件已被删除

时间:2014-06-17 07:49:52

标签: git visual-studio visual-studio-2013 git-merge

我在Visual Studio中使用git。我合并了两个分支,发生了一些冲突。 Visual Studio自动删除了两个文件而没有任何确认。如何在尝试自动解决冲突时阻止VS删除文件。 enter image description here

2 个答案:

答案 0 :(得分:3)

Visual Studio没有删除这些文件;它们已被删除。您挑选了两个状态为"由我们删除的文件"。这意味着在您的HEAD分支中,该文件已被删除,并且尚未在您合并的分支中进行修改。这不是冲突(但Visual Studio会向您显示正在进行的操作的报告)在合并中。)

如果您要合并的文件发生了更改, 会发生冲突,系统会提示您还原文件(来自远程分支)或保留删除。

答案 1 :(得分:1)

在提交合并之前,使用git diff --name-status HEAD查找是否已删除某些文件。如果您想保留文件,只需使用git reset HEAD <file>取消暂存已删除的文件。

如果合并已自动完成,请使用git diff --name-status HEAD HEAD~1查找已删除的文件。如果你想保留文件,git reset HEAD~1重置合并提交。然后只提交您想要提交的修改并重置您想要保留的内容。

要摆脱自动提交,只需使用git merge --no-commit <branch>,然后第一个解决方案就可以了。