gitignore错过了一些二进制文件(DLL和PE)

时间:2016-02-16 17:46:27

标签: gitignore github-desktop

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

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

当我进行更改,重新编译并测试所有内容时,我打开Github Desktop。它会捕获几乎所有应该被忽略的文件,只有某些 .dll s,.pdb.exe s不会被忽略并始终显示为已更改:< / p>

img

现在,这个仓库中有更多的二进制文件。只会错过屏幕抓取中的特定内容。

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

这是我尝试的内容:

  • 删除并重新克隆了存储库
  • 删除并手动重新创建gitignore
  • 右键单击 - &gt;从GitHub桌面客户端中按文件扩展名忽略。这不起作用,更糟糕的是,它在gitignore
  • 中创建了重复的掩码
  • 检查Github Desktop可访问的目录中是否存在冲突的gitignore

1 个答案:

答案 0 :(得分:1)

也许你在修改.gitignore之前已经有git跟踪的文件?添加到.gitignore时,这些文件(至少在git 1.9.1中)不会被忽略。

例如,我在我的一个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。

要强制忽略该文件,您可以将其删除,添加&amp;将删除与.gitignore更改一起提交,然后恢复文件。