我正在Windows 10上使用Github Desktop。我有一个.gitignore文件,使用它我想忽略目录中的一切,包括所有子目录。
令人沮丧的是,大多数 文件都被排除在外,但是我仍然得到了一些我似乎无法忽略的随机文件。
我有一个目录,例如My Dir/Sub-dir
,我想忽略。我也想忽略所有扩展名的文件,例如*.swf
。因此,我写了这个.gitignore
文件:
My Dir/Sub-dir
*.swf
但是,当我回到Github Desktop时,仍然得到两个类似于列表中的以下文件:
My Dir/Sub-dir/anotherdir/randomfile.xml
My Dir/Sub-dir/animation.swf
这是怎么回事?这是错误吗?还是我错过了什么?
编辑:
我尝试过的其他替代方法.gitignore
是:
My*Dir/Sub-dir
*.swf
My\ Dir/Sub-dir
*.swf
My Dir/Sub-dir/
*.swf
/My Dir/Sub-dir
*.swf
编辑:
因此,我在文件上尝试了git rm --cached <file>
命令,该命令一直有效-直到其中一个文件再次更改。 Github Desktop然后再次说他们需要更新。
p.s。可能是因为它们以某种方式在master分支中建立了索引,因为我目前在另一个分支中。这会导致吗?而且,如果是这样,我将如何从所有分支中消除这些文件?
答案 0 :(得分:1)
要忽略特定目录下的所有树,请在目录后加上斜杠:
# Ignore directory at all levels, even if the directory is nested under other directories
My Dir/Sub-dir/
# Ignore the directory only if it exists at the root of your repository
/My Dir/Sub-dir/
# Ignore the sub-directory, no matter where it appears within your repository
Sub-dir/
# Ignore all swf files
*.swf
如果继续遇到困难,则可能是您要忽略的文件已被git索引(通过git add
命令)。如果尚未提交文件,则可以使用git reset -- 'My Dir/Sub-dir/'
将它们从索引中删除。如果文件已提交,则可以使用git rm --cached <file>
将它们从索引中删除。
答案 1 :(得分:0)
我猜空白可能是个问题。试试
My\ Dir/Sub-dir
或
My*Dir/Sub-dir
这可能是一个很好的参考.gitignore entire directory with whitespace in name