Иногда история репозитория Git может содержать чувствительную информацию, такую как учетные данные администратора. Даже если вы удалите все копии этой информации из базы кода и сохраните эти изменения, ее все равно можно будет найти в истории Git. Далее покажу, как удалить чувствительную информацию из репозитория Git.
Еще по теме: Уязвимости в сервисах совместной разработки
Как удалить чувствительную информацию из репозитория Git
Скачайте последнюю версию git-filter-repo. На момент написания статьи — это версия 2.34.0.
После скачивания найдите файл «filter-repo». Этот файл должен быть в корневом каталоге. Скопируйте этот файл в путь выполнения Git. Вы можете найти его, запустив:
1 |
git --exec-path |
После того, как файл будет скопирован, перейдите в репозиторий, который хотите очистить, и создайте новый текстовый файл в этом каталоге. Его можно назвать как угодно, но для этого примера мы назовем его «expressions.txt». Этот файл будет содержать инструкции по удалению или изменению информации истории репозитория:
1 2 3 4 5 6 |
p455w0rd foo==>bar glob:*666*==> regex:\bdriver\b==>pilot literal:MM/DD/YYYY==>YYYY-MM-DD regex:([0-9]{2})/([0-9]{2})/([0-9]{4})==>\3-\1-\2 |
Инструкция filter-repo:
- p455w0rd на ***УДАЛЕНО***
- fooна bar
- Любая строка, содержащая 666 на пустую строку.
- Слово driver на слово pilot
- Точный текст MM/DD/YYYY на YYYY-MM-DD
- Строки даты в форме MM/DD/YYYY на дату в виде YYYY-MM-DD
Чтобы выполнить эти правила, запустите:
1 |
git filter-repo --replace-text expressions.txt |
Рекомендуется работать с клонированным репозиторием и использовать это исправление истории на этом новом клоне, чтобы не испортить основной. Если вы решите этого не делать, вам может потребоваться добавить --force в конце приведенной выше команды.
Теперь, можете отправить обновления на удаленный компьютер.
Еще по теме: Защита виртуального сервера VDS Linux