Подтвердить что ты не робот

Как правильно удалить конфиденциальные данные, перенесенные в репозиторий Git?

Я по ошибке удалил файл, содержащий пароль для моего репо, - FYI репо - это всего лишь небольшой персональный проект.

Как только я понял, что пароль присутствует, я добавил файл в .gitignore и выполнил git rm -r --cached <filename>, зафиксировал и нажал на репо.

Теперь я понимаю, что пароль по-прежнему присутствует в истории - , что лучший способ его удалить?

Я прочитал страницу Удалить конфиденциальные данные на Github, которая предлагает изменить пароль - что я сделал - но я хотел бы удалить историю также.

4b9b3361

Ответ 1

Поскольку вы уже сделали 5 коммитов с момента фиксации, содержащей пароль с четким текстом, лучше всего сделать git rebase -i в интерактивном режиме в своем локальном филиале. Найдите SHA-1 коммита, где вы добавили текстовый пароль, и введите следующее:

git rebase --interactive dba507c^

где dba507c - первые 7 символов SHA-1 для плохой фиксации.

Измените это:

pick dba507c comment for commit containing clear text password

Для этого:

edit dba507c I have removed the clear text password

Внесите изменения в файл паролей, чтобы удалить чистый текст, затем выполните свой результат следующим образом:

git commit --all --amend --no-edit
git rebase --continue

Завершите перезагрузку, затем нажмите (правильную) локальную ветвь на пульте дистанционного управления через:

git push -f origin your_branch

Вам нужно будет принудительно нажать your_branch, потому что вы переписали историю (путем изменения файла пароля). Теперь у вас есть все ваши последние коммиты, но вы удалили чистый текст.

Ответ 2

Если это был предыдущий коммит, удалите пароль из файла и запустите

git add file_with_pwd
git commit --amend 
git push -f origin master

Примечание. После того, как вы разместили это в Stackoverflow, многие ребята, возможно, уже клонировали репо (у вас одинаковое имя пользователя в github и только один репозиторий). Измените пароль!