2016-04-11 18 views
0

Ich arbeite am Git-Hub-Tool, da irrtümlich Ich drücke eine Datei mit lokalen Zweig-Code, den ich nicht in Master-Zweig zusammenführen möchte. Wie man "Push file" zurück auf das lokale System zurücksetzt Oder wenn es eine Möglichkeit gibt, Dateien von Github selbst zu entfernen.Zurücksetzen Push, der noch nicht zusammengeführt ist

Irgendein Vorschlag.

Antwort

0

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.

+0

Sie meinen, etwas ändern und neue Pull Request erstellen und bestehende löschen? – CoDe

+0

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

+0

Aber was ist dann mit meinen Änderungen, die in offenen nicht zusammengeschlossenen Zweig hat. – CoDe