【问题标题】:Git still tracks files in gitignore fileGit 仍然跟踪 gitignore 文件中的文件
【发布时间】:2021-02-24 15:23:45
【问题描述】:

我在 windows 中遇到以下 gitignore 问题(我与 vscode 结合使用,如果此信息很重要)

为了不让事情复杂化,我尝试了一个简单的例子。

我的根文件夹包含:

maininterface.py
.gitignore
logs/dev.log

我的 gitignore 文件只有一行:

logs/

输入 git status 时,我得到以下信息:

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore
        logs/
        maininterface.py

我错过了什么吗?目录日志不应位于未跟踪的文件中。
我尝试寻找解决方案,很多人建议git rm --cached logs 这对我不起作用,我明白了:

fatal: pathspec 'logs' did not match any files 

(我也试过git rm --cached logs/dev.log,同样的问题)

顺便说一句,我没有在任何文件上使用 git add。

谢谢你,如果你有小费...

【问题讨论】:

  • 您可以运行git check-ignore -v logs 并将输出添加到您的问题中吗?
  • 我刚刚尝试了您的建议。该命令没有问题。但 git status 给出的输出仍然相同
  • 它有输出吗?还是沉默?
  • 它是无声的...没有输出
  • 这意味着您的文件夹与任何gitignore 模式都不匹配。

标签: windows git visual-studio-code gitignore


【解决方案1】:

检查您的.gitignore 文件是否没有寄生字符。

例如:文件开头的 BOM 将使 git 尝试查找 "{\xEF\xBB\xBF}logs"


[编辑]:我忘记了默认情况下UTF-16(或UCS-2)中的powershell写入,您正确地发现,在BOM之上,您的文件实际上是在UCS-2中编码的。

【讨论】:

  • .gitignore 没有寄生虫……它只包含一行。我专门用 echo 命令创建了它...
  • 您在 Windows 上吗?例如,powershell 将 BOM 添加到命令的 stdout ...
  • 要么检查文件的十六进制内容(@rioV8 建议 od),要么在编辑器中打开它,它会告诉你是否有一个(例如:Notepad++)
  • 是的,我在 Windows 上。你能告诉我如何检查这个 BOM 是否被添加?
  • 你安装了 Notepad++ 吗?如果你用 Notepad++ 打开一个文件,你会在底部看到一个注释,上面写着UTF-8 with BOMUTF-8 no BOM。在菜单的某个地方(Edit,如果我没记错的话)有一个项目可以显式转换为UTF-8 no BOM
【解决方案2】:

问题解决了。 使用记事本++,这是编码问题...!

非常感谢您的帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    相关资源
    最近更新 更多