我想忽略没有扩展名的可执行文件
例如:
gcc -o foo foo.c
我知道我可以在我的.gitignore文件中添加'foo',但如果我决定更改可执行文件的名称,我需要更新我的.gitignore文件......
答案 0 :(得分:9)
我通常使用makefile hacks来处理这个问题。在我的Makefile中,我有可执行文件$(name)的名称,然后我这样做:
#first rule
all: gitignoreadd ... more depends
... some commands ...
gitignoreadd:
grep -v "$(name)" .gitignore > temp
echo $(name) >> temp
mv temp .gitignore
gitignoreremove:
grep -v "$(name)" .gitignore > temp
mv temp .gitignore
那个规则可以只是某个地方适当的依赖。那么你通常有一个'make clean'规则如下:
clean: gitignoreremove
rm *.o *.othergarbagefiles $(name)
这应该可以解决问题。这是一个黑客,但它适用于我。唯一的事情是你必须在更改名称之前运行make clean以自动清理所有内容。
答案 1 :(得分:8)
你可能最好手动维护gitignore。你可以这样做:
*
!*.*
排除所有内容,然后用“。”包含所有内容,但我怀疑你的目录没有扩展名。当然,当前仍会跟踪当前跟踪的目录,但如果您添加了新目录,则git-status
将无法看到它,您必须使用add -f
才能将其获取。
无论如何,假设不应跟踪所有无扩展名文件可能并不好。你可能会自然地得到一些 - 例如,README和INSTALL非常常见。意外忽略文件比修改gitignore更糟糕。修改gitignore可能需要几秒钟,但是当你需要这样做时它会很明显。如果您不小心忽略了某个文件,则很容易无法将其检入并丢失工作。