Хранение учетных данных / конфиденциальной информации в исходном коде - плохая практика. Этого можно избежать, храня их во внешнем месте. В зависимости от требований / уровня безопасности внешнее местоположение может быть:
- переменная окружения
- файл конфигурации не сохраняется в системе управления версиями
- база
- выделенная система, например Хранилище Хашикорпа
Относительно вашей другой части вопроса - удаления уже введенных учетных данных. Сначала отключите пропущенные учетные данные (их ищут боты, как от Github, так и от злоумышленников).
Когда учетные данные отключены, вам нужно переписать историю. Это можно сделать с помощью git rebase
. Обратите внимание, что переписывание публичной истории считается плохой практикой, и ее следует избегать. Я бы предпочел отключить учетные данные и добавить коммиты, которые добавляют модификацию, описанную в первой части ответа.
Автоматическое внесение изменений возможно при использовании зацепки pre-commit на вашей стороне, но это не лучшая идея. После этого изменения git status
всегда будет показывать вам, что рабочая область отличается от индекса.
Другой вариант - использовать фильтры, но для меня это звучит как чрезмерная тренировка. Таким образом вы исправите проблему, но не основную причину (хранение учетных данных в виде простого текста в исходном коде).