Git让我提交被忽略的文件

时间:2013-03-13 19:06:59

标签: git

我在分支feature/branch1git status列出了.gitignore文件中的两个文件。当我尝试结帐到develop分支时,git会阻止我发送此消息:

error: Your local changes to the following files would be overwritten by checkout:
    XXXXXXX.xcworkspace/xcuserdata/XXXX.xcuserdatad/UserInterfaceState.xcuserstate
Please, commit your changes or stash them before you can switch branches.
Aborting

然后我尝试添加这些文件,尽管它们列在.gitignore文件中,所以我收到了这条消息:

The following paths are ignored by one of your .gitignore files:
XXXXXXX.xcworkspace
Use -f if you really want to add them.
fatal: no files added

为什么git要我添加这些文件?是因为它们在develop分支中不被忽略。处理这种情况的最佳选择是什么?提前完成。

1 个答案:

答案 0 :(得分:2)

问题是你有本地目录中的文件,尽管它们没有被git版本化。并且git checkout正试图引入这些版本化的文件。 Git告诉你它正在尝试覆盖文件,但它们没有版本化,所以你有两个选择:

  1. 从本地仓库中删除文件并设置结帐 文件。
  2. 通过将被忽略的文件添加到git来对其进行版本控制 回购。 (git add -f <ignored files>
  3. 要查看repo目录中的所有被忽略文件,请运行:

    git status --ignored
    

    这将列出您的所有忽略文件,在此处您可以决定是否要在运行git checkout <branch>之前移动,删除或更新它们。

    签出此分支后,您可能还需要考虑从您尝试签出的分支进入的被忽略的文件确实不应该提交给git仓库,您可以从仓库中删除文件而不删除它们:

    git rm --cached <files>