Стандарт (и правильно, действительно) совет заключается в том, чтобы хранить эти пароли в другом месте, например, читать их из другого файла, не контролируемого версией (~/.netrc
и т. д.).
Сказанное может использовать крюк предварительной фиксации для проверки пароля в индексе и прервать фиксацию, если она присутствует (это опять-таки стандартный совет: не изменять вещи в предварительных фиксациях, просто скажите пользователю, что есть что-то не так, и остановитесь). Или вы могли бы даже связать крючок pre-commit с индексом так, чтобы пароль отсутствовал.
Обратите внимание, что крюк предварительной фиксации может быть обойден пользователем, поэтому это не является надежным, независимо от того, как вы его настроили (в качестве верификатора или в качестве модификатора).
Помните, что новое обязательство будет производиться из содержимого индекса, не то, что в рабочем каталоге. Например:
$ echo this is what will be committed > foo.txt
$ git add foo.txt # put current foo.txt into the index
$ echo the current contents are completely different > foo.txt
$ git commit -m 'demonstrate index vs work dir'
Версия foo.txt
коммита это создает читает «это то, что будет совершено», даже несмотря на «текущее содержание совершенно разные» является то, что в foo.txt
, если вы посмотрите на него сейчас , Для того, чтобы увидеть, что на самом деле в индексе, используйте, например .:
$ git cat-file -p :0:foo.txt
См gitrevisions для каких :0:foo.txt
средств.