1647 Stimmen

Wie kann man mehrere Git-Commits rückgängig machen?

Ich habe ein Git-Repository, das wie folgt aussieht:

A <- B <- C <- D <- HEAD

Ich möchte, dass der Kopf der Verzweigung auf A zeigt, d.h. ich möchte, dass B, C, D und HEAD verschwinden, und ich möchte, dass head ein Synonym für A ist.

Es klingt so, als ob ich entweder versuchen könnte, neu zu basen (trifft nicht zu, da ich zwischendurch Änderungen vorgenommen habe) oder zu revertieren. Aber wie kann ich mehrere Übertragungen rückgängig machen? Mache ich einen nach dem anderen rückgängig? Ist die Reihenfolge wichtig?

1voto

ScottyBlades Punkte 9468

Wenn Sie

  1. eine zusammengeführte Übergabe haben und
  2. Sie nicht zurückkehren können und
  3. es Ihnen nichts ausmacht, die Geschichte, die Sie umkehren sollen, zu zerstören,

dann können Sie

git reset --soft HEAD~(number of commits you'd like to revert)
git commit -m "The stuff you didn't like."
git log
# copy the hash of your last commit
git revert <hash of your last (squashed) commit>

Wenn Sie dann Ihre Änderungen veröffentlichen wollen, denken Sie daran, die Funktion -f Flagge, weil Sie den Verlauf geändert haben

git push <your fork> <your branch> -f

-11voto

Ajit Singh Punkte 2350

Wenn Sie die Übertragungen eines Features vorübergehend rückgängig machen wollen, können Sie die folgenden Befehle verwenden.

So funktioniert es

git log --pretty=oneline | grep 'feature_name' | cut -d ' ' -f1 | xargs -n1 git revert --no-edit

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X