无论我放入.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;在标题中)。
答案 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-> +在忽略的文件中
为了确保一切正常,请确保将其重置,以便新的git规则起作用。
git rm -r --cached .
git add .
答案 4 :(得分:0)