Eliminați datele private privat din depozitul git, blogul lui boshi

Într-o zi, în timp ce lucrează cu un depozit git, puteți trimite la întâmplare (zakomitit) login-uri, parole personale de depozitare și chei SSH. Desigur, cu git rm puteți șterge fișierul, dar fișierul va fi de asemenea prezent în istoric. Din fericire, există utilitare care vă permit să ștergeți complet un fișier din depozitul GIT. În acest articol vom descrie modul de utilizare a BFG Repo-Cleaner și git-filtru-ramura pentru a elimina complet un fișier dintr-un depozit de Git.

Important: după ce fișierul cu date private a intrat în depozit, toate datele din acesta pot fi considerate compromise și este necesar să se ia măsuri imediate (schimbarea parolelor etc.). Nu există nici o modalitate de a urmări dacă cineva a văzut vreodată sau a descărcat aceste fișiere.

git-filtru ramură

Probabil merită să începeți cu git-filter-branch. deoarece această utilitate face parte din git și nu necesită instalare.

Accesați directorul cu proiectul dorit:

Primul lucru pe care trebuie să-l faceți este să vă asigurați că avem cea mai recentă versiune a depozitului și nu există schimbări locale.

Să presupunem că am zakomitili accidental în fișierul repository. Mediul în care avem o parolă pentru baza de date. Proiectul în dezvoltare activă utilizează o bază de date de testare, dar obiceiul de a folosi parola este același ca și pentru conectarea la sistem sau oriunde. O situație familiară. )

După ce ne-am asigurat că avem cea mai recentă versiune și nu există modificări locale, putem șterge fișierul:

Ca urmare a acestei comenzi, fișierul .environment va fi șters în fiecare comitet al depozitului. Dacă doriți să ștergeți directorul, adăugați -f la git rm:

Dacă există încă fișiere care trebuie să fie șterse - executați această comandă pentru fiecare dintre ele.

Este important. pentru a evita o repetare a acestei situații neplăcute, trebuie să adăugați în .gitignore:

Acum vom rezolva toate schimbările noastre:

Dacă au fost folosite etichete:

Este important. după toate schimbările care au fost făcute tuturor celor care au lucrat cu acest depozit, trebuie să renunțați. Fie eliminați magazia locală și o despicați din nou. Acesta din urmă este mai bun, deoarece există mai puține șanse să vă împușcați în picior, mai ales dacă echipa are juniori. )

BFG Repo-Cleaner

BFG Repo-Cleaner - este o alternativă simplă și ușor de git-filtru-ramură pentru a elimina fișierele nedorite din magazia Git. De exemplu, pentru a șterge fișierul .environment ca în exemplul git-filter-branch de mai sus:

În ciuda faptului că fișierul poate fi șters după o comitere accidentală, acest lucru trebuie evitat. Există câteva lucruri simple care trebuie evitate și invers utilizate:

  • Utilizați programe cu o interfață grafică pentru git. Acestea arată clar ce fișiere vor fi adăugate comitetului. În toate mediile de dezvoltare, există, de obicei, fie programe de completare, fie instrumente integrate pentru a lucra cu git, care ajută la evitarea unor astfel de erori. Dacă mediul de dezvoltare pe care îl folosiți nu are mijloacele de a lucra cu git, adică cu interfețe grafice. Am scris o dată o scurtă trecere în revistă a interfețelor grafice pentru git;
  • Evitați astfel de comenzi periculoase ca adăugați git. git adăugați -A și git commit -a. În schimb, adăugați fișiere separate cu git add;
  • Utilizați git add - interactiv pentru a vizualiza interactiv și a adăuga fișiere;
  • Înainte de a adăuga fișiere, examinați cu atenție fișierele care au fost modificate și pot fi adăugate la comanda de stare git.






Articole similare

Trimiteți-le prietenilor: