gitignore 遗漏了一些二进制文件(DLL 和 PE)

gitignore misses some binary files (DLLs & PEs)

我使用最新版本的 Github Desktop。我的存储库包含一个相当大的 C# 解决方案,其中包含许多子目录和项目。我想忽略所有 R#-cache 文件和使用驻留在本地 repo 目录根目录中的 .gitignore 文件编译的二进制文件。此回购协议中的任何地方都没有其他 gitignore,并且在任何父目录中都没有 none。我当前的 gitignore 是这样的:

*.suo
*.user
_ReSharper.*
bin
obj
packages
*.cache
*.pdb
*.dll
*.exe
*.xml

当我进行更改、重新编译和测试所有内容时,我打开 Github 桌面。它捕获了几乎所有应该被忽略的文件,只有 some .dlls, .pdbs 和 .exes 不会被忽略并且总是显示为更改:

现在,这个 repo 中有更多的二进制文件。只遗漏了截屏中的具体内容。

这是否可以修复,and/or 是否可以更改 gitignore 以捕获它应该捕获的所有文件?

这是我尝试过的:

也许在您修改 .gitignore 之前,您的文件已经被 git 跟踪?这些文件(至少在 git 1.9.1 中)在添加到 .gitignore.

时不会被忽略

例如,我在我的一个repos的根文件下创建了一个"test"目录,并在里面放了一个文件:

mkdir test
echo "abc" > test/x.txt

我添加、提交并推送了它。然后我在根目录下编辑了 .gitignore 并添加了这一行:

x.txt

我还对 test/x.txt 进行了编辑并添加了一个新文件:

echo "123" >> test/x.txt
mkdir test2
echo "xyz" > test2/x.txt

现在当我 运行 "git status" 我看到:

modified:   .gitignore
modified:   test/x.txt

所以 test2/x.txt 被正确地忽略了,但是 test/x.txt 仍然被跟踪。

要强制忽略该文件,您可以将其删除,添加并提交删除连同.git忽略更改,然后恢复文件。