Ich habe gerade Änderungen an einem Zweig vorgenommen. Wie kann ich die Änderungen auf den anderen Zweig übertragen?
Ich versuche zu verwenden:
git checkout "the commmit to the changed branch" -b "the other branch"
Ich denke jedoch nicht, dass dies das Richtige ist, da ich in diesem Fall einen neuen Zweig erstelle, anstatt die Änderungen auf "den anderen Zweig" zu übertragen.
Soll ich stattdessen den folgenden Befehl verwenden?
git merge "the other branch"
Antworten:
git checkout -b your-new-branch
git add <files>
git commit -m <message>
Überprüfen Sie zunächst Ihre neue Niederlassung. Fügen Sie dann alle Dateien hinzu, die Sie für das Staging festlegen möchten. Zuletzt schreiben Sie alle Dateien fest, die Sie gerade hinzugefügt haben. Möglicherweise möchten Sie
git push origin your-new-branch
danach eine Änderung vornehmen, damit Ihre Änderungen auf der Fernbedienung angezeigt werden.quelle
git status
zu sehen, was gerade inszeniert ist und was nicht.git add
undgit commit -a
?git checkout -b your-new-branch
stattgit checkout your-new-branch
?Wenn Sie keine Änderungen vorgenommen haben
Wenn Ihre Änderungen mit dem anderen Zweig kompatibel sind
Dies ist bei der Frage der Fall, da das OP einen neuen Zweig festschreiben möchte und dies auch gilt, wenn Ihre Änderungen mit dem Zielzweig kompatibel sind, ohne ein Überschreiben auszulösen.
Wie in der akzeptierten Antwort von John Brodie können Sie einfach den neuen Zweig auschecken und die Arbeit übernehmen:
Wenn Ihre Änderungen nicht mit dem anderen Zweig kompatibel sind
Wenn Sie den Fehler erhalten:
Dann können Sie Ihre Arbeit verstecken, einen neuen Zweig erstellen, dann Ihre Änderungen speichern und die Konflikte lösen:
Es ist, als hätten Sie diese Änderungen nach dem Erstellen des neuen Zweigs vorgenommen. Dann können Sie wie gewohnt festlegen:
Wenn Sie Änderungen festgeschrieben haben
Wenn Sie die Commits im ursprünglichen Zweig behalten möchten
Siehe die Antwort von Carl Norum mit Kirschernte, die in diesem Fall das richtige Werkzeug ist:
Wenn Sie die Commits nicht im ursprünglichen Zweig behalten möchten
Siehe die Antwort von joeytwiddle zu diesem potenziellen Duplikat . Führen Sie einen der oben genannten Schritte aus und rollen Sie den ursprünglichen Zweig zurück:
Wenn Sie Ihre Änderungen auf eine freigegebene Fernbedienung wie GitHub übertragen haben, sollten Sie dieses Rollback nur versuchen, wenn Sie wissen, was Sie tun.
quelle
error: Your local changes to the following files would be overwritten by checkout: ... Please commit your changes or stash them before you switch branches.
Möchten Sie eine neue Antwort schreiben oder meine Antwort bearbeiten? Wenn nicht, kann ich es selbst bearbeiten.Wenn ich richtig verstehe, haben Sie eine Verpflichtung eingegangen
changed_branch
und möchten diese Verpflichtung kopierenother_branch
? Einfach:quelle