gitignore没有忽略文件

时间:2014-05-17 22:09:49

标签: xcode git 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

我正在使用/编辑this post上列出的.gitignore文件。 我尝试了所有内容以匹配模式,包括确切的路径名:CalFoo.xcodeproj/project.xcworkspace/xcuserdata/wcochran.xcuserdatad/UserInterfaceState.xcuserstate,但无济于事。

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

5 个答案:

答案 0 :(得分:64)

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

如果你想让git跟踪该文件,则无需告诉git忽略它。

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

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

答案 1 :(得分:17)

我有同样的问题。

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

git rm -r --cached .

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

git add .

承诺:

git commit -m ".gitignore working now"

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

答案 2 :(得分:0)

这里完美解释了一种忽略GitHub上文件的简单方法 https://help.github.com/en/articles/ignoring-files

在推送到GitHub之前,您的项目文件夹应为空白。

1)打开终端并输入 cd

并将您的项目文件夹拖到终端上。之后,它将如下所示:

docmacbook$ cd /Users/docmacbook/Downloads/MyProjectFolder

2)打开.gitignore文件,然后添加要忽略的文件。例如,我的.gitignore文件如下所示:

MyAppName.xcodeproj/xcuserdata
MyAppName.xcworkspace/xcuserdata
Pods
report.xml

3)提交推送到GitHub。

此操作之后,您的项目或在.gitignore文件所在的文件夹中创建一个新项目,现在您要忽略的文件将不会被推送到GitHub。

注意:我认为,这些步骤也适用于现有项目,未经测试。

答案 3 :(得分:0)

对我来说,我必须将列表添加到xcode源代码控件“忽略的文件”中。 设置->源代码管理-> git-> +在忽略的文件中

xcode git ignore 为了确保一切正常,请确保将其重置,以便新的git规则起作用。

git rm -r --cached .
git add .

答案 4 :(得分:0)

如果您执行了类似 echo node_modules >> .gitignore 的操作,它将无法工作。

Windows 终端将文件保存在 UCS-2 LE BOM 中,而 git 似乎不接受这一点。

您可以使用 Notepad 打开文件并使用 UTF-8 编码保存

notepad save utf-8 encoding

现在可以使用了。

我认为他们需要解决这个问题,因为 echo "filetoignore" >> .gitignore 实际上看起来很方便