git状态显示未跟踪的文件,尽管已忽略
我在git存储库中的.gitignore文件中有一些条目,但有些条目仍然显示为未跟踪的文件 my.gitignore文件中的重要部分: 但是,当我运行git status时,会显示:git状态显示未跟踪的文件,尽管已忽略,git,Git,我在git存储库中的.gitignore文件中有一些条目,但有些条目仍然显示为未跟踪的文件 my.gitignore文件中的重要部分: 但是,当我运行git status时,会显示: Untracked files: (use "git add <file>..." to include in what will be committed) .idea/ mypackage.egg-info/ mypackag
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/
任何人都知道为什么会发生这种情况,或者我的.gitignore文件中的错误是什么
此问题与建议的不同,如图所示,文件未被跟踪。如果我创建一个新的虚拟环境venv,在.gitignore文件中有相应的条目,也会出现此问题。请在终端中尝试git rm-r-cached.idea。它会禁用更改跟踪。不是答案,只是进一步调试问题的建议列表 尝试从不同的shell运行git status:cmd.exe、powershell、git bash,看看这三种shell的行为是否相同 您还可以通过以下命令查看更多信息:
git status --ignored
git check-ignore -v [paths]
# 'check-ignore' only checks paths explicitly listed on the command line :
git check-ignore -v *
git check-ignore -v .idea mypackage.egg-info mypackage/__pycache__
有关此问题的更多详细信息:
最后:您还可以运行git add.idea/或者选择文件最少的文件夹?看看会添加什么。
您可以使用git reset.idea/来还原这一点,这是一个棘手的例子,证明git在Linux上工作得更好。在这个非常特殊的案例中,问题是没有正确设置文件编码,因此.gitignore文件被作为二进制文件处理 感谢@LeGEC为我指出了正确的方向:当我在WSL控制台上做了一个cat.gitignore时,我发现有些东西是邪恶的,内容如下:
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 _ _ /
有时,当您将文件/文件夹添加到.gitignore时,这些文件/文件夹仍将存在于您的存储库索引中 请按照以下步骤清除它: 第一步。首先提交所有更改,包括.gitignore文件 第二步。删除或清除您的回购,使用以下命令,包括点[.]
git rm -r --cached .
您的存储库是干净的,git状态现在不应显示未跟踪的文件
这个。指示将取消跟踪所有文件
-缓存将仅从索引中删除文件
第三步。重新添加所有内容并提交
git commit -a -m ".gitignore fix"
您的存储库是干净的,git状态不应显示未跟踪的文件夹它们可能已被添加,尽管它们位于忽略文件中。这是否回答了您的问题?我使用的是Windows 10。这可能是个愚蠢的问题,但你的.gitignore在哪里?它位于常规NTFS文件系统文件夹中。我认为Git并不关心.idea文件夹。正如你发现的,Git不理解Windows UTF-16编码。其他文件也是如此,UTF-16编码将导致Git认为它们是二进制的…facepalm nice catch@ansfourtytwo谢谢你的回答。但是,事实上这不是我的问题。文件肯定没有添加,因此显示为未跟踪的文件。
git commit -a -m ".gitignore fix"