我想忽略没有文件扩展名的可执行文件。
例如:
例如:
gcc -o foo foo.c
我知道可以将'foo'添加到我的.gitignore文件中,但如果我决定更改可执行文件的名称,则需要更新我的.gitignore文件...
gcc -o foo foo.c
我知道可以将'foo'添加到我的.gitignore文件中,但如果我决定更改可执行文件的名称,则需要更新我的.gitignore文件...
我通常使用makefile技巧来处理这个问题。在我的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 的依赖项。然后你通常会有一个 'make clean' 规则,如下:
clean: gitignoreremove
rm *.o *.othergarbagefiles $(name)
这应该可以解决问题。虽然这是一个不太正规的方法,但对我而言是有效的。唯一需要注意的是,在更改名称之前必须运行 make clean 命令以自动清理所有内容。
最好还是手动维护.gitignore文件。你可以这样做:
*
!*.*
git-status
将无法看到它,并且您必须使用add-f
才能将其添加。
总之,假设所有没有扩展名的文件都不应该被跟踪可能不是一个好主意。 您可能会遇到一些自然存在的无扩展名文件 - 例如,README和INSTALL非常常见。 不小心忽略一个文件比修改gitignore要糟糕得多。 修改gitignore可能需要几秒钟时间,但是需要进行修改的时候很明显。 如果您不小心忽略了一个文件,就可能无法检查它并且丢失工作。