gitignore没有忽略文件

wco*_*ran 37 git xcode gitignore

无论我放入什么,.gitignore我都无法得到git忽略UserInterfaceState.xcuserstate下面的文件:

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   .gitignore
    modified:  CalFoo.xcodeproj/project.xcworkspace/xcuserdata/wcochran.xcuserdatad/UserInterfaceState.xcuserstate
Run Code Online (Sandbox Code Playgroud)

我正在使用/编辑此帖子中.gitignore列出的文件.我尝试了一切以匹配模式,包括确切的路径名:无济于事.CalFoo.xcodeproj/project.xcworkspace/xcuserdata/wcochran.xcuserdatad/UserInterfaceState.xcuserstate

这个特殊问题源于使用Xcode创建初始​​git repo并且之后添加.gitignore来自此处的文件的工作流程.从这个问题中可以找到忽略git中先前跟踪文件的更一般的答案(我想我在搜索中从未找到过这个帖子,因为它在标题中没有"gitignore").

mic*_*has 66

您只能忽略未版本控制的文件,但git已知该文件.

如果你想让git跟踪那个文件,就没有必要告诉git忽略它.

如果您不希望git跟踪该文件的使用git rm,您的忽略规则将开始工作.

警告:git rm将删除该文件.用于git rm --cached从存储库中删除但不从磁盘中删除.

  • 注意,`git rm`将删除该文件.使用`git rm --cached`从repo中删除但不从磁盘中删除. (17认同)
  • 这个答案对应于我曾经相信的内容:但今天,我有一个文件,它位于.gitignore,它不受控制,它仍然以"git status"显示为未跟踪文件(其文件名为'build') .没有任何"git rm build"或触及.gitignore会有所帮助.有任何想法吗? (2认同)

Gau*_*rma 19

我有同样的问题.

首先提交任何未完成的代码更改,然后运行以下命令:

git rm -r --cached .
Run Code Online (Sandbox Code Playgroud)

这将从索引(暂存区域)中删除所有已更改的文件,然后运行:

git add .
Run Code Online (Sandbox Code Playgroud)

承诺:

git commit -m ".gitignore working now"
Run Code Online (Sandbox Code Playgroud)

要撤消git rm --cached filename,请使用git add filename.