Git Commit ajaloo (nii kohaliku kui ka kaugjuhtimise) eemaldamine
Kuigi enamik meist teab, et me ei tohiks kunagi anda tundlikku teavet lähtekoodihoidlasse (olgu see siis Git, Subversion või mis iganes), on aegu, mil see juhtub.
Enamasti ma kujutan ette, et see juhtub alati, kui töötame koodi kallal ja seejärel hüppame edasi-tagasi IDE ja terminali vahel ning sisestame koodi, et veenduda, et muudatused ei kaoks.
See juhtub piisavalt kaua ja seejärel sisestame tarbija võtme ja tarbijasaladuse või kasutajanime ja parooli või midagi sarnast hoidlas.
Õnneks saame koodi tagasivõtmiseks kohustused eemaldada, kuid enamik allika juhtimissüsteeme säilitab lõpuks kõige ajaloo (mis on hea). Aga mis siis, kui meil on vaja eemaldada Git’i kohustuste ajalugu nii meie kohalikest kui ka kaughoidlatest?
Git Commit ajaloo eemaldamine
Selle näite puhul eeldan, et töötate Gitiga ja töötate käsureaga (kuigi ma kujutan ette, et enamik GUI -sid võimaldaks seda teha).
Järgmiseks eeldan, et kohustus, mille soovite oma ajaloost eemaldada, on viimane ja soovite lihtsalt ühe sammu tagasi minna.
Git’i kohustuste ajaloo täielikuks eemaldamiseks peate tegema ainult kahte asja:
- taanda eelmisele kohustusele,
- lükake oks puldile.
Selleks kontrollige kahte keskmist sammu siin :
# First, review the history. (Gotta make sure you're going to roll back to the right place!)
$ git log --pretty=oneline --abbrev-commit
# Remove HEAD back to the commit prior to the one that has sensitive information
# and set equal to the last good commit.
$ git rebase -i HEAD~1
# Push the content to the remote repository and remove it from the history.
$ git push origin +<name of branch>
# If you want to review the history...
$ git log --pretty=oneline --abbrev-commit
Täiendavad toimingud enne ja pärast peamisi sisseviimisi võimaldavad teil saada visuaalse sissekannete loendi juhuks, kui soovite valida eraldi tagatise, millele soovite tagasi pöörata.
Ja võite käivitada käsu nii enne kui ka pärast kahte ülejäänud käsku (nagu on ülaltoodud põhisisus näha), et veenduda, et sisseviidude loend kuvatakse projekti ajaloos nii, nagu soovite.