Vraag Hoe kan ik een commit op GitHub verwijderen?


Ik heb "per ongeluk" een commit naar GitHub geduwd.

Is het mogelijk om deze commit te verwijderen?

Ik wil mijn GitHub-repository terugzetten zoals deze was vóór deze commit.


1404
2018-01-15 23:20


oorsprong


antwoorden:


Notitie: zie alternatief voor git rebase -i in de reacties hieronder-

git reset --soft HEAD^

Verwijder eerst de commit in uw lokale repository. U kunt dit doen met git rebase -i. Als het bijvoorbeeld je laatste commit is, kun je dat doen git rebase -i HEAD~2 en verwijder de tweede regel in het editorvenster dat verschijnt.

Forceer vervolgens naar GitHub met behulp van git push origin +branchName

Zien Git Magic Hoofdstuk 5: Lessen uit de geschiedenis - en nog wat voor meer informatie (dat wil zeggen als je oudere commits wilt verwijderen).

Oh, en als je werkende boom vies is, moet je a doen git stash eerst en dan a git stash apply na.


1016
2018-01-15 23:24



git push -f origin HEAD^:master

Dat zou de push moeten "ongedaan maken".


853
2018-01-16 00:11



Om eenvoudig terug te komen als het gewoon een fout is (misschien heb je een repo gevorkt en uiteindelijk naar het origineel geduwd in plaats van naar een nieuwe) is hier nog een andere mogelijkheid:

git reset --hard 71c27777543ccfcb0376dcdd8f6777df055ef479

Natuurlijk moet je dat aantal omwisselen voor het nummer van de commit waarnaar je wilt terugkeren.

Alles sindsdien zal worden verwijderd zodra u opnieuw drukt. Om dat te doen, zou de volgende stap zijn:

git push --force

293
2018-04-21 20:26



  1. git log om de commit te achterhalen die je wilt terugzetten

  2. git push origin +7f6d03:master terwijl 7f6d03 de commit is voor de verkeerd gepushte commit. + was voor force push

En dat is het.

Hier is een zeer goede gids die uw probleem oplost, eenvoudig en eenvoudig!


70
2018-02-09 11:58



U moet uw cache leegmaken zodat deze volledig wordt gewist. deze help-pagina van git zal je helpen. (het heeft me geholpen) http://help.github.com/remove-sensitive-data/


34
2017-07-27 22:38



In het geval dat u de commit-wijzigingen wilt behouden na het verwijderen:

Merk op dat deze oplossing werkt als de commit die moet worden verwijderd de laatst gecommiteerde is.


1 - Kopieer de commit-referentie die je leuk vindt om terug te keren vanuit het log:

git log

2 - Reset git naar de commit-referentie:

 git reset <commit_ref>

3 - Berg de lokale wijzigingen op van de verkeerde commit en sla deze op om later te gebruiken na drukken op afstandsbediening:

 git stash

4 - Duw de wijzigingen in de externe repository, (-f of --force):

git push -f

5 - Ga terug naar de opgeslagen wijzigingen in de lokale repository:

git stash apply

7 - In het geval dat je de nieuwe / niet-gebruikte bestanden bij de wijzigingen hebt, moet je ze toevoegen aan git voordat je commit:

git add .

6 - Voeg alle extra wijzigingen toe die u nodig hebt en voer vervolgens de benodigde bestanden uit (of gebruik een punt '.' In plaats van elke bestandsnaam te vermelden, om alle bestanden in de lokale repository te binden:

git commit -m "<new_commit_message>" <file1> <file2> ...

of

git commit -m "<new_commit_message>" .

31
2018-06-07 14:44



Gebruik git revert voor het terugdraaien van je push.

git-revert - Zet een aantal bestaande commits terug

git revert [--edit | --no-edit] [-n] [-m parent-number] [-s] <commit>...
git revert --continue
git revert --quit
git revert --abort

Herstel de wijzigingen die de gerelateerde patches introduceren en neem een ​​aantal nieuwe commits op die deze vastleggen. Dit vereist dat je werkboom schoon is (geen wijzigingen van de HEAD commit).


24
2017-07-17 08:21



1. git reset HEAD^ --hard
2. git push origin -f

Dit werk voor mij.


19
2017-08-10 08:41



Om de commit van de externe repository te verwijderen:

 git push -f origin last_known_good_commit:branch_name

Om de commit van je lokale repository te verwijderen:

git reset --hard HEAD~1

link


13
2018-03-07 01:27



Verwijder de meest recente commit, behoud het werk dat je hebt gedaan:

git reset --soft HEAD~1

Verwijder de meest recente commit en vernietig het werk dat je hebt gedaan:

git reset --hard HEAD~1

10
2017-11-15 12:39



Zoek de ref spec van de commit waarvan je de baas wilt zijn op je branch op Github en gebruik de volgende opdracht:

git push origin +[ref]:[branchName]

In jouw geval, als je gewoon één commit terug wilt gaan, zoek dan het begin van de ref voor die commit, zeg bijvoorbeeld dat het 7f6d03 is, en de naam van de branch die je wilt veranderen, zeg bijvoorbeeld dat het master is, en doe het volgende:

git push origin +7f6d03:master

Het plus-teken wordt geïnterpreteerd als --force, wat nodig zal zijn omdat je de geschiedenis herschrijft.

Merk op dat je altijd --force een commit die je mogelijk de geschiedenis van andere mensen kunt herschrijven die je branch samenvoegen. Als je het probleem echter snel opvangt (voordat iemand anders je branch samenvoegt), heb je geen problemen.


9
2018-06-22 10:36