Ich habe aus Versehen in den falschen Branch committet. Wie kann ich diesen Commit löschen?
Antworten
Zu viele Anzeigen?Ich frage mich, warum die beste Antwort, die ich gefunden habe, nur in den Kommentaren ist! (von Daenyth mit 86 Upvotes)
git reset --hard origin
Mit diesem Befehl wird das lokale Repository mit dem Remote-Repository synchronisiert und alle Änderungen, die Sie lokal vorgenommen haben, verworfen. Sie können auch Folgendes tun, um den genauen Branch abzurufen, den Sie im Ursprung haben, wie Cleary es in den Kommentaren vorgeschlagen hat.
git reset --hard origin/
Don't delete it: for just one commit git cherry-pick
is enough.
Aber wenn Sie mehrere Commits auf dem falschen Branch haben, zeigt sich hier git rebase --onto
:
Angenommen, Sie haben dies:
x--x--x--x <-- master
\
-y--y--m--m <- y-Zweig mit Commits, die auf dem master-Zweig hätten sein sollen
Dann können Sie master
markieren und ihn dorthin verschieben, wo er sein soll:
git checkout master
git branch tmp
git checkout y
git branch -f master
x--x--x--x <-- tmp
\
-y--y--m--m <- y-Zweig, Master-Zweig
, setzen Sie den y-Zweig zurück, wo er sein sollte:
git checkout y
git reset --hard HEAD~2 # ~1 in Ihrem Fall,
# oder ~n, n = Anzahl der zu stornierenden Commits
x--x--x--x <-- tmp
\
-y--y--m--m <- Master-Zweig
^
|
-- y-Zweig
und schließlich verschieben Sie Ihre Commits (wenden sie erneut an und erstellen tatsächlich neue Commits):
git rebase --onto tmp y master
git branch -D tmp
x--x--x--x--m'--m' <-- master
\
-y--y <- y-Zweig
- See previous answers
- Weitere Antworten anzeigen