Kaip panaikinti „git įsipareigoti“ vietoje ir nuotoliniame įrenginyje po „git push“

git commit o tada git push . Kaip galiu grąžinti šį pakeitimą į vietines ir nuotolines saugyklas?

 $ git log commit 364705c23011b0fc6a7ca2d80c86cef4a7c4db7ac8 Author: Michael Silver <Michael Silver@gmail.com> Date: Tue Jun 11 12:24:23 2011 -0700 
184
23 июня '11 в 21:44 2011-06-23 21:44 michael nustatė birželio 23 d. 11 val. 21:44 2011-06-23 21:44
@ 7 atsakymai
 git reset --hard HEAD~1 git push -f <remote> <branch> 

(Pavyzdys stumti: git push -f origin bugfix/bug123 )

Taip bus atšauktas paskutinis įvykis ir atnaujinta istorija bus ištrinta. Jums reikia perduoti -f nes pakeisite nuotolinio valdymo pultelio ankstesnę istoriją.

299
23 июня '11 в 21:51 2011-06-23 21:51 atsakymą pateikė Aleksandras Groß , birželio 23 d. 11, 21:51 2011-06-23 21:51

Paprastai atlikite „atvirkštinį“ fiksavimą naudodami:

 git revert 364705c 

tada nusiųskite jį į konsolę kaip įprasta:

 git push 

Tai nepašalins įsipareigojimo: tai daro papildomą įsipareigojimą, kuris panaikina viską, kas buvo padaryta pirmiausia. Visa kita nėra labai saugi, ypač kai pakeitimai jau buvo įprasti.

133
23 июня '11 в 21:50 2011-06-23 21:50 atsakymą pateikė Amadanas birželio 23 d. 11 d. 21:50 2011-06-23 21:50

Visų pirma, atsipalaiduokite.

„Nieko nekontroliuoja. Mūsų kontrolė yra tik iliuzija.“ „Klaida, žmogus“

Supratau, kad netyčia paspaudėte savo remote-master kodą. Tai bus gerai.

1 .. Pirmiausia gaukite SHA-1 reikšmę komandai, kurią bandote grąžinti. pataisykite šaką. paleiskite:

 git log 

pamatysite „f650a9e398ad9ca606b25513bd4af9fe ...“ krūvą kaip linijas kartu su kiekvienu iš įvykių. nukopijuokite šį numerį iš įsipareigojimo, kurį norite grąžinti .

2. Dabar įveskite toliau nurodytą komandą:

 git reset --hard your_that_copied_string_but_without_quote_mark 

Turėtumėte pamatyti pranešimą, pvz., „HEAD now“. jūs matote. Tai, ką ką tik padarė, yra atspindėti šį pakeitimą vietoje.

3. Dabar įveskite toliau nurodytą komandą:

 git push -f 

turėtumėte pamatyti, kaip

„įspėjimas:„ push.default “nėra nustatytas, jo netiesioginė vertė pasikeitė ........ Iš viso 0 (delta 0), pakartotinai panaudota 0 (delta 0) ...... your_branch_name → master (priverstinis naujinimas). "

Dabar jūs viską suprantate. Patikrinkite vedlį „git log“ dar kartą, jūsų fiksuotas_destination_commit turėtų būti sąrašo viršuje.

Sveiki atvykę (iš anksto;))

UPDATE:

Dabar pakeitimai, kuriuos padarėte prieš pradedant jį, dabar jau praėjo. Jei norite vėl grąžinti šį sunkų darbą, tai įmanoma. Git reflog ir git cherry komandos dėka.

Dėl to norėčiau pasiūlyti šį dienoraštį arba šį įrašą .

24
05 янв. Atsakymas, kurį pateikė kmonsoor Jan 05 2015-01-05 19:17 '15, 19:17, 2015-01-05 19:17

git reset HEAD~1 jei nenorite, kad pakeitimai būtų atlikti (nekeisti pakeitimai). Dar kartą pakeiskite, padarykite ir paspauskite git push -f [origin] [branch]

6
25 июня '14 в 16:42 2014-06-25 16:42 atsakymas pateikiamas „ softvar“ birželio 25 d., 14 val. 16:42 2014-06-25 16:42

Galite atlikti interaktyvų perkėlimą:

 git rebase -i <commit> 

Tai atvers jūsų numatytąjį redaktorių. Tiesiog pašalinkite eilutę, kurioje yra įsipareigojimas, kurį norite pašalinti.

Jūs, žinoma, turėsite prieigą prie nuotolinio saugyklos, kad taip pat pritaikytumėte šį pakeitimą.

Žr. Šį klausimą: „ Git“: ištrinkite pasirinktus įsipareigojimus iš saugyklos

4
23 июня '11 в 21:48 2011-06-23 21:48 atsakymą davė Jackas Edmondsas birželio 23 d. 11 d. 21.48 val. 2011-06-23 21:48

Pabandykite naudoti

 git reset --hard <commit id> 

Pastaba: čia įsipareigojimo ID bus įsipareigojimo, į kurį norite eiti, identifikatorius, bet ne identifikatorius, kurį norite naudoti iš naujo. tai buvo vienintelis laikas, kai aš taip pat įstrigo.

tada spustelėkite

 git push -f <remote> <branch> 
4
01 февр. Atsakymą pateikė Mohit Dhawan 01 vasaris. 2016-02-01 13:07 '16 at 13:07 2016-02-01 13:07

Arba:

 git push origin +364705c23011b0fc6a7ca2d80c86cef4a7c4db7ac8^:master 

Priversti pagrindinį šaltinio šaltinio saugyklos filialą į pagrindinio paskutinio komandos elementą

2
23 окт. „ MicRum“ atsakymas spalio 23 d 2014-10-23 01:41 '14 at 1:41 2014-10-23 01:41

Žr. Kitus klausimus apie žymes arba užduokite klausimą