【问题标题】:Github - gitignore folder doesn't exclude all directory filesGithub - gitignore 文件夹不排除所有目录文件
【发布时间】:2019-03-23 18:32:28
【问题描述】:

我在 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

发生了什么事?这是一个错误吗?还是我错过了什么?

编辑:

我尝试过的其他替代 .gitignores 是:

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 再次说他们需要更新。

附言可能是他们以某种方式在主分支中被索引,因为我目前在另一个分支中。这会导致吗?如果是这样,我将如何从所有分支中删除这些文件?

【问题讨论】:

    标签: gitignore github-desktop


    【解决方案1】:

    我猜空格可能是个问题。试试

    My\ Dir/Sub-dir
    

    My*Dir/Sub-dir
    

    这可能是一个很好的参考.gitignore entire directory with whitespace in name

    【讨论】:

    • 是的,这很好。我在网上找到了这个建议并尝试了它。不幸的是,它仍然没有工作......:-/我将编辑我的问题。
    【解决方案2】:

    要忽略特定目录下的所有树,请将尾部斜杠附加到目录:

    # 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> 从索引中删除它们。

    【讨论】:

    • 做到了!它只是被缓存了。因此,从 GitHub Desktop (stackoverflow.com/questions/34565238/…) 找到我的 git install 后,我能够将其从索引中删除。
    • 对不起,我认为它有效..查看我的第二次编辑。也许你会有一个想法。
    • @Codesmith 从索引中删除它后(通过git rm --cached)你提交删除了吗?
    • 澄清一下,如果有要删除的文件提交到存储库(不删除本地副本),您可以使用git rm --cached 暂缓从存储库中删除该文件。您仍然需要提交该更改才能真正从存储库中删除该文件,并且在进行此提交之前,您可能会看到您的 env(GitHub 桌面)在进行更改时自动重新添加它。另一方面,如果文件还没有提交,那么git reset -- <file> 就可以了。
    • 还只是添加一个注释以澄清上述答案,.gitignore防止 非索引 文件被添加到 repo -- 它不会对已经被索引的文件做任何事情。
    猜你喜欢
    • 2011-08-01
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    相关资源
    最近更新 更多