Вы можете
git rm myConfigFile
echo myConfigFile > .gitignore
git add .gitignore
git commit -m "from now on, no more myConfigFile"
Другой крайний подход (опасный, особенно если вы уже перенесли свое репо в удаленное), заключается в полном удалении этого файла из истории указанного репо:
git filter-branch --index-filter 'git update-index --remove myConfigFile' HEAD
(использовать с осторожностью и в первую очередь с резервной копией)
Вопрос Как мне удалить конфиденциальные файлы из истории git содержит больше по этой важной теме.
Проблемы с этим процессом имеют две стороны:
- Если ваше репо уже было клонировано, вы никогда не сможете гарантировать, что конфиденциальная информация действительно будет «ушла» из любого другого репо.
- Когда другие попытаются свернуть ваши последние изменения после этого, они получат сообщение о том, что изменения не могут быть применены, потому что это не ускоренная перемотка вперед.
Чтобы это исправить, им придется либо удалить свой существующий репозиторий и повторно клонировать его, либо следовать инструкциям в разделе «RECOVERING FROM UPSTREAM REBASE
» на git-rebase
manpage .
В обоих случаях ваша конфиденциальная информация не будет "тихо" заменена или стерта ...