Usuwanie wrażliwego pliku z repozytorium

Jakiś czas temu, dokładniej kilka miesięcy wstecz, tworząc projekt – dodałem sobie niechciany plik do commita. Był to sam plik application.properties. Pech chciał że w owych propertisach znajdował sie mój adres email razem z hasłem (sic!). Był potrzebny do wysyłania maili z poziomu aplikacji (przez smtp googla). Nie zauważyłem tego od razu tylko dopiero po jakimś czasie. Usunąłem więc plik z Githuba i wróciłem do pracy. Niedawno zauważyłem, że może i pliku nie ma jako takiego ale to przecież Git (system do zarządzania zmianami) więc właściwości pliku nadal znajdują się na githubie (dokładniej w historii commitów). Wziąłem się więc za szukanie rozwiązania i znalazłem w dokumentacji githuba: https://docs.github.com/en/github/authenticating-to-github/removing-sensitive-data-from-a-repository. Ja zrobiłem to tak:

  • pobrałem .jar programu bfg-repo-cleaner
  • dla ułatwienia przeniosłem sobie go folderu projektu
  • musiałem jeszcze dodać zmienne środowiskowe dla javy (laptop był po gruntownym restarcie więc ich nie było)
  • uruchomiłem program z flagą --delete-files i voila!

java -jar bfg-1.13.2.jar --delete-files application.properties

Następnie należało jeszcze wykonać git push --force w katalogu projektu aby git przesłał zmiany do githuba.

Jak widać program znalazł 26 commitów w których była jakaś wzmianka na temat pliku:

Oczywiście sam program posiada wiele innych możliwości czyszczenia jak np. usuwanie plików z daną nazwą, usuwanie plików większych niż dany rozmiar, zamiana linii na inny tekst (w pliku). Tak więc mogłem po prostu zamienić frazy ze słowem email i password z application.properties zamiast usuwać cały plik ze zdalnego repozytorium. Po więcej odsyłam do dokumentacji projektu:

https://rtyley.github.io/bfg-repo-cleaner/

Leave a Reply


Close Bitnami banner
Bitnami