我使用的是最新版本的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>
现在,这个仓库中有更多的二进制文件。只会错过屏幕抓取中的特定内容。
这是否可以修复,和/或是否可以更改gitignore以捕获它应该捕获的所有文件?
这是我尝试的内容:
答案 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更改一起提交,然后恢复文件。