未追踪的文件阻止了检出,除非是vcs.xml文件。

5

我试图将一个分支合并到主分支,因此我切换到了主分支,但现在它不让我进行合并:

未跟踪的文件防止了检出 移动或提交它们之前,请先进行操作。 .idea/vcs.xml

我不能移动或删除文件,因为这会解除版本控制系统与该项目的关联 当我尝试提交时,因为选项没有出现,所以我无法提交它 我无法切换到分支以查看我可以从那里做什么,因为我得到了同样的错误消息。

如何修复这个问题,并且如何防止再次发生?我需要一个.gitignore文件来排除.idea文件夹中的所有内容吗?


我不太明白当您在主分支提交vcs.xml文件,然后切换到其他分支时如何会收到相同的错误信息,因为这时它已经不再是未跟踪的文件了。 - x squared
我也不确定。实际上,在我的项目文件结构或在我尝试提交时弹出的未选中文件框中,它并没有显示vcs.xml文件。 - fudge
4个回答

8
您试图合并的分支已经将该文件检入,但是master分支未跟踪该文件(可能在.gitignore中)。当您尝试合并其他分支时,Git会阻止您覆盖这些文件,因为您可能关心它们(毕竟,一侧已经将它们跟踪)。
您有几个选择:
  • 删除该文件并合并,这将包括您试图合并的分支中的版本。
  • 更改分支(或要求分支作者更改分支),不包括您不想覆盖的文件,并确保它在.gitignore中。如果这是特定于给定编辑器的文件,则可能不适合在版本控制中,因为不同的人使用不同的编辑器和不同的设置。
  • 将该文件保存在其他位置,进行合并,然后在查看合并结果后确定下一步操作。

1
谢谢,第三个选项对我有用,将文件移出代码库,然后切换到主分支,之后再将不需要被主分支忽略的文件移回来。 - Jose Pla

2

对我有效的一件事是,在PyCharm中,当它要求智能检出时,不要使用智能检出。手动合并即可。


2
展开.idea文件夹,右键单击vxs.xml,并让IDE将该文件添加到.gitignore中。然后您应该能够从GitHub上进行Pull操作。

1
你应该:
  1. 在本地项目文件夹中创建一个 .gitignore 文件,

  2. 如果你使用 PHPstorm,请在 PHPstorm 询问“将 .gitignore 文件添加到 Git?”时按“NO”按钮。

  3. 填写以下内容:

    /.gitignore

    /.idea/*


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