Как заставить git предупреждать или добавлять новые файлы?

Мы все пережили тот болезненный момент, когда новая функция отлично работает локально, но ломается при развертывании, потому что мы забыли добавить новый файл.

Есть ли способ заставить git предупреждать или автоматически добавлять новые файлы, когда git commit -a выполняется?

2 ответа

Хук предварительной фиксации, такой как этот, должен сигнализировать о оставшихся файлах:

#!/bin/bash
. git-sh-setup # for 'die' cmd
git status --porcelain | while IFS= read -r line;
do
         if [[ $line == \?\?* ]] ; then # if the file begins with ?? it's untracked by git
                die "Uncommited files left!" # this will always terminate commit
                # say "Uncommited files left!" # this will just print the warning
         fi
done

Просто добавьте это в pre-commit хуки вашего репо и вуаля:)

РЕДАКТИРОВАТЬ: вам также следует рассмотреть возможность использования некоторого инструментария для непрерывной интеграции, такого как Hudson или Buildbot - он может выполнять гораздо более полную проверку, чем поиск отсутствующих файлов:)

РЕДАКТИРОВАТЬ 2: к сожалению, мне не удалось использовать чтение внутри цикла, поэтому я думаю, что этот хук не сможет заставить вас действовать.

git config --global alias.commita '!git add . && git commit -a'

После этого просто используйте:

git commita ..

вместо git commit -a, Это также добавит новые файлы.

Другие вопросы по тегам