Git Commit -historian poistaminen (sekä paikallinen että etä)
Vaikka useimmat meistä tietävät, että meidän ei pitäisi koskaan siirtää arkaluonteisia tietoja lähdekoodivarastoon (olipa se sitten Git, Subversion tai mikä tahansa), joskus niin tapahtuu.
Useimmiten kuvittelen, että se tapahtuu aina, kun työskentelemme koodin parissa ja sitten hyppäämme edestakaisin IDE:n ja päätteen välillä ja sitoudumme koodiin varmistaaksemme, että emme menetä muutoksia.
Tätä tapahtuu tarpeeksi kauan, ja sitten päädymme sitomaan kuluttajaavaimen ja kuluttajasalaisuuden tai käyttäjätunnuksen ja salasanan tai jotain vastaavaa arkistoon.
Onneksi voimme poistaa sitoumukset palauttaaksemme koodimme, mutta useimmat lähteenhallintajärjestelmät päätyvät pitämään historiaa kaikesta (mikä on hyvä asia). Mutta entä jos meidän on ryhdyttävä poistamaan Git-sitoumushistoria sekä paikallisista että etävarastoistamme?
Git Commit -historian poistaminen
Tässä esimerkissä oletan, että työskentelet Gitin kanssa ja käytät komentoriviä (vaikka luulisin, että useimmat graafiset käyttöliittymät mahdollistaisivat tämän).
Seuraavaksi oletan, että sitoumus, jonka haluat poistaa historiastasi, on viimeisin ja haluat vain palata yhden askeleen taaksepäin.
Jos haluat poistaa Git-sitoumushistorian kokonaan, sinun on tehtävä vain kaksi asiaa:
- palata edelliseen sitoumukseen,
- työnnä haara kaukosäätimeen.
Voit tehdä tämän tarkistamalla kaksi keskimmäistä vaihetta täältä :
# 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
Lisävaiheet ennen ja jälkeen päätoimituksia mahdollistavat visuaalisen luettelon toimituksista siltä varalta, että haluat valita erillisen toimituksen, jonka haluat peruuttaa.
Ja voit suorittaa komennon sekä ennen kahta muuta komentoa että sen jälkeen (kuten yllä olevasta pääsisällöstä näkyy) varmistaaksesi, että toimitusluettelo näkyy projektin historiassa haluamallasi tavalla.