Sie können gewaltsam einen Zweig auf einem Remote-Server git, einschließlich Github außer Kraft setzen:
git push -f <server> <good_state>:<target_branch>
Gebrauch mit Vorsicht.
Möglicherweise sind ausführlichere Erläuterungen erforderlich.
Angenommen, Sie haben ein Repository auf GitHub. Im lokalen Klon des Repo-moment gibt es Commits:
A -> B -> C -> D -> E
in einem Zweig <Branch>
(könnte es master
, oder was auch immer sein), wo E
begehen ist „schlecht“ (falsch, enthalten einige fehlerhafte oder sensible Daten usw.). Sie haben diesen Zweig bereits auf github
verschoben und in einem "übergeordneten" Projekt sogar eine Pull-Anforderung erstellt.
Entfernen Sie zunächst die Pull-Anforderung, um ein versehentliches Zusammenführen des E-Commits zu verhindern.
Dann fallen E
aus Ihrem veröffentlichten Commits auf GitHub:
git push -f github <D>:<Branch>
Jetzt auf Github die <Branch>
endet mit <D>
begehen, als ob es gar nicht <E>
war. Jetzt können Sie <E>
lokal beheben, indem Sie git commit --amend
ausgeben oder einfach mit git reset --hard <D>
löschen. Wann immer Sie bereit sind, können Sie die neuen Commits erneut ausführen und PR wiederholen.
Sie meinen, etwas ändern und neue Pull Request erstellen und bestehende löschen? – CoDe
Wenn Sie bereits eine Pull-Anforderung für das fehlerhafte Commit erstellt haben, dann sollten Sie sie wahrscheinlich löschen. Sie können auch fehlerhafte Commits in Ihrem persönlichen Klon eines Repositorys auf github entfernen, indem Sie den oben genannten Befehl ausführen. – user3159253
Aber was ist dann mit meinen Änderungen, die in offenen nicht zusammengeschlossenen Zweig hat. – CoDe