【问题标题】:gitignore not working with spaces in folder namegitignore 不使用文件夹名称中的空格
【发布时间】:2017-05-30 12:17:49
【问题描述】:

我正在执行 git status,并且我有以下文件显示在“未暂存以进行提交的更改”中

/GTCS/External Assemblies/Alstom.ApplicationBroker.Toolkit.dll

所以我将上面的确切文本添加到 .gitignore 文件中。

但当我执行 git status 时,它仍然显示在 Changes not staged for commit 中。

我认为是因为文件夹名称 External Assemblies 中的空格,还是因为我在开头放置了正斜杠?

我尝试在“外部”一词之后立即放置一个反斜杠,但这不起作用。始终显示为未上演。

【问题讨论】:

  • 查看stackoverflow.com/questions/10213653/…的解决方案这对我有用。
  • 如果它显示为“未暂存的更改”而不是未跟踪的文件,那么这是因为 git ignore 规则仅适用于未跟踪的文件(不适用于跟踪文件的新更改),无论是否存在任何问题路径中的空格

标签: git


【解决方案1】:

如果文件出现在“未暂存以进行提交的更改”区域中,则表示该文件已被 Git 跟踪。

Git 仅在将新文件添加到存储库时使用.gitignore(即git add)。您的文件已被跟踪,现在将其名称添加到 .gitignore 不会改变任何内容。

如果您想在文件已被跟踪时忽略该文件,您必须:

  1. 将其名称/路径添加到.gitignore
  2. 从存储库中删除文件。

第二部分很简单:

git rm --cached /GTCS/External Assemblies/Alstom.ApplicationBroker.Toolkit.dll

提交删除后,该文件将不再出现在git status 的输出中。


注意名称中的空格与问题没有任何关系。

【讨论】:

  • 请注意,这会删除 .dll 并防止意外重新添加它(提交“看到”.gitignore 条目),但不会将其完全从 repo 中删除 - 即它仍然在历史上,占用空间并且任何有权访问回购的人都可以阅读。如果 OP 需要从 repo 中完全清除文件,那就是另外一罐蠕虫
【解决方案2】:

试试/GTCS/External\ Assemblies/Alstom.ApplicationBroker.Toolkit.dll。空格前应该有一个斜线。

【讨论】:

    猜你喜欢
    • 2014-01-04
    • 2012-10-04
    • 2018-09-08
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多