Я хочу игнорировать исполняемые файлы, которые не имеют расширения
Например:
gcc -o foo foo.c
Я знаю, что могу добавить 'foo' в мой файл .gitignore, но если я захочу изменить имя исполняемого файла, мне нужно будет обновить файл .gitignore...
Я хочу игнорировать исполняемые файлы, которые не имеют расширения
Например:
gcc -o foo foo.c
Я знаю, что могу добавить 'foo' в мой файл .gitignore, но если я захочу изменить имя исполняемого файла, мне нужно будет обновить файл .gitignore...
На самом деле вам будет лучше вручную поддерживать gitignore, возможно. Вы можете сделать это:
*
!*.*
чтобы исключить все, а затем включить все с помощью ".", но я подозреваю, что ваши каталоги не имеют расширений. Конечно, отслеживаемые каталоги по-прежнему будут отслеживаться, но если вы добавите новый, git-status
не увидит его, и вам нужно будет использовать add -f
для его ввода.
Вероятно, неплохо предположить, что все файлы без расширения не должны отслеживаться. В конечном итоге вы можете получить некоторые из них - например, README и INSTALL довольно распространены. Это намного хуже, чтобы случайно проигнорировать файл, а не модифицировать gitignore. Изменение gitignore может занять несколько секунд, но это будет очевидно, когда вам это нужно. Если вы случайно проигнорируете файл, вы можете легко его не проверять и потерять работу.
Я обычно обрабатываю это с помощью make файлов. В моем файле 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 перед изменением имени, чтобы автоматически очистить все.