Nastavitev testnega repozitorija Git:
V tem razdelku bom kloniral enega od svojih skladišč GitHub v svojem računalniku, da bom postavil testno skladišče za ta članek. Če želite nadaljevati, lahko to storite tudi vi. Če imate lastno shrambo Git, s katero lahko delate, potem super! Uporabite ga lahko tudi vi.
Za kloniranje enega od mojega skladišča GitHub (https: // github.com / dev-shovon / my-project), zaženite naslednji ukaz:
$ git klon https: // github.com / dev-shovon / my-project undo_commit_demo
Skladišče GitHub je treba klonirati undo_commit_demo / imenik.
Zdaj se pomaknite do undo_commit_demo / imenik, kot sledi:
Obveza, ki jo želite razveljaviti, je lahko v drugi veji, kot je moja. Želim razveljaviti zadnji prevzem datoteke tj-popraviti podružnica. Torej, moram potegniti vejo tj-popraviti iz mojega skladišča GitHub.
Lahko potegnete tj-popraviti podružnica iz GitHub, kot sledi:
$ git pull origin ie-fixOPOMBA: Tukaj, tj-popraviti je ime podružnice.
The tj-popraviti vejo je treba potegniti.
Zdaj pa odjava do podružnice (v mojem primeru, tj-popraviti), iz katerega želite razveljaviti zadnji prevzem, kot sledi:
$ git checkout ie-fix
Kot lahko vidite, je zadnji prevzem datoteke tj-popraviti podružnica je aec00f3. V naslednjih razdelkih vam bom predstavil načine razveljavitve zadnjega sprejema v vašem skladišču Git.
Razveljavi zadnjo objavo in obdrži spremembe:
Eden od načinov za razveljavitev zadnje odobritve je uporaba mehke ponastavitve v vašem skladišču Git. To se zgodi tako, da se zadnja odobritev odstrani in spremembe, ki ste jih naredili v tej zavezi, dodajo v odrsko območje vašega skladišča Git. Na ta način lahko, če želite kaj popraviti, spremenite datoteke in dodate novo objavo.
Kot lahko vidite, je zadnji prevzem v mojem tj-popraviti podružnica je aec00f3.
$ git log --oneline
Tudi moj oder je čist.
$ git status
Zdaj, če želite odstraniti ali razveljaviti zadnjo odobritev, zaženite naslednji ukaz:
$ git reset --soft HEAD ~ 1
Kot lahko vidite, se zavežite aec00f3 izginilo je.
$ git log --oneline
Datoteka, ki sem jo spremenil v zadnji objavi, je v mojem odrskem območju.
$ git status
Zdaj lahko datoteke še dodatno spremenite, popravite napake in spremembe znova odobrite.
Razveljavi zadnjo odobritev in odstrani spremembe:
Če je zadnja odobritev, ki jo želite odstraniti, za vas neuporabna, lahko razmislite o strogi ponastavitvi vašega skladišča Git. Trda ponastavitev je, da odstrani zadnji prevzem kot prej. Odstrani pa tudi vse spremembe, ki ste jih naredili v zadnji zavezi. Natančno ponastavite šele, ko ste prepričani, da ne potrebujete več ničesar od zadnje odobritve.
Potegnil bom tj-popraviti znova iz mojega repozitorija GitHub, da obnovim zadnjo odobritev aec00f3 in ga ponovno odstranite v tem razdelku.
$ git pull origin ie-fix
Kot lahko vidite, se je zadnji prevzem vrnil. Če je vaše repozitorij Git naložen v storitev Git v oblaku, kot je GitHub, lahko obnovite tudi katero koli objavo, ki ste jo pomotoma odstranili.
Kot lahko vidite, je moje uprizoritveno območje čisto.
$ git status
Zdaj, da odstranite zadnjo odobritev in odstranite spremembe v tej zavezi, zaženite naslednji ukaz:
$ git reset --hard HEAD ~ 1
Odstrani zadnjo odobritev in GLAVA kazalec je treba posodobiti.
Kot lahko vidite, se zavežite aec00f3 je odstranjena in objava tik pred tem (3fffdee) je trenutni zadnji prevzem.
$ git log --oneline
Tudi odrsko območje je čisto. Torej obstajajo datoteke sprememb iz odstranjenega predaja.
$ git status
Posodabljanje oddaljenega repozitorija Git:
Zdaj, ko ste uspešno odstranili napačno objavo iz svojega skladišča Git, boste morda želeli posodobiti tudi svoje skladišče GitHub. To je tema tega poglavja.
Kot lahko vidite, git status tudi kaže, da zaostajam za 1 oddaljenim repozitoriju.
Preden sem posodobil svoj repozitorij GitHub, se datoteka commit aec00f3 obstaja, čeprav sem ga, kot vidite, odstranil iz lokalnega repozitorija Git.
Če želite sinhronizirati lokalni repozitorij Git s skladiščem GitHub, zaženite naslednji ukaz:
$ git push --force origin ie-fixSpremembe lokalnega skladišča Git je treba sinhronizirati s skladiščem GitHub.
Repozitorij GitHub je treba posodobiti. Kot lahko vidite, se zavežite aec00f3 ni več na seznamu. Obveza neposredno pred aec00f3, kateri je 3fffdee je zdaj zadnji prevzem.
Torej, tako razveljavite zadnji prevzem v Gitu. Hvala, ker ste prebrali ta članek.