470 Stimmen

Wie kann ich den Inhalt eines Branches in einen neuen lokalen Branch kopieren?

Ich habe an einem lokalen Zweig gearbeitet und die Änderungen auch in den Remote-Zweig übertragen.

Ich möchte die Änderungen in diesem Zweig rückgängig machen und etwas anderes damit tun, aber ich möchte die Arbeit nicht komplett verlieren. Ich dachte an etwas Ähnliches wie das Erstellen eines neuen Zweigs lokalen und das Kopieren des alten Zweigs dorthin. Dann kann ich die Änderungen rückgängig machen und weiter an dem alten Zweig arbeiten.

Gibt es vielleicht eine bessere Möglichkeit als diese?

0voto

Scott Anderson Punkte 572

Angesichts Ihrer Anfrage nach besseren Optionsmöglichkeiten:

Ein potenzieller Nachteil beim Kopieren von Branches besteht darin, dass Sie auf das Fast-Forward-Verhalten von Git achten müssen, wenn Sie in denselben Elternbranch zusammenführen oder Änderungen aus der Kopie wieder in den Originalbranch zurückführen möchten.

Beispielsweise, wenn Sie einige Commits im 'original' Branch rückgängig gemacht haben, aber jetzt die zurückgenommenen Änderungen wieder in den Originalbranch einfügen möchten, können Sie den kopierten Branch nicht einfach in den Elternbranch zusammenführen, da Git diese Commits bereits als vorhanden betrachtet (auch wenn sie später rückgängig gemacht wurden).

Vielleicht würde cherry-pick [commit-range] in diesem Kontext funktionieren & kümmert sich nicht um vorhandene Hashes zuckt mit den Schultern

Meiner Meinung nach wäre es jedoch besser, dies auf folgende Weise zu tun.

  1. Erstellen Sie einen neuen Branch vom aktuellen Branch-HEAD aus git branch [archive-branch-name]
  2. Finden Sie den Commit, zu dem Sie zurückkehren möchten, mit git log
  3. Führen Sie git reset --head [commit-hash-from-#2] aus
  4. git push -f origin

Beachten Sie, dass Sie mit dem 'original' Branch beginnen und während der Schritte keine Branches wechseln.

Oder noch einfacher könnten Sie einfach ganz auf das Branching verzichten und einfach die Commits rückgängig machen, die Sie rückgängig machen möchten, und die Rückgängigmachung später rückgängig machen, wenn Sie es müssen

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