git status 显示未跟踪的文件,尽管被忽略

Sim*_*ink 4 git

.gitignore我的存储库中的文件中有一些条目git,但某些条目仍然显示为未跟踪的文件。

我的文件中的重要部分.gitignore

# IDE settings
.idea/

# Environments
win_venv/

# Byte-compiled / optimized / DLL files
__pycache__/

# Distribution / packaging
*.egg-info/
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时git status,会出现以下情况:

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

        .idea/
        mypackage.egg-info/
        mypackage/__pycache__/
        mypackage/schema/__pycache__/
        mypackage/schema/models/__pycache__/
        mypackage/tests/__pycache__/
        win_venv/
Run Code Online (Sandbox Code Playgroud)

有人知道为什么会发生这种情况或者我的.gitignore文件中有什么错误吗?

这个问题与建议的答案不同,因为所示的文件未被跟踪。venv如果我创建一个新的虚拟环境,并在文件中包含适当的条目,也会发生此问题.gitignore

Sim*_*ink 5

这是一个又一个棘手的证明,git在 Linux 上效果更好。在这个非常具体的情况下,问题是文件编码设置不正确,因此文件.gitignore被作为二进制文件处理。

感谢@LeGEC 为我指明了正确的方向:当我cat .gitignore在 WSL 控制台上执行操作并且内容看起来像这样时,我发现有些东西是邪恶的:

    I D E   s e t t i n g s
 . i d e a /

 #   B y t e - c o m p i l e d   /   o p t i m i z e d   /   D L L   f i l e s
 _ _ p y c a c h e _ _ /

Run Code Online (Sandbox Code Playgroud)