Ist es möglich, Änderungen von einem Zweig in einen anderen zu übertragen und zu übertragen?
Angenommen, ich habe Änderungen in BRANCH1 festgeschrieben und möchte sie auf BRANCH2 übertragen .
Ab BRANCH1 gilt Folgendes :
git push origin **BRANCH2**
Und dann BRANCH1 zurücksetzen?
git
git-branch
jviotti
quelle
quelle
branch1
undbranch2
müssen auf der Fernbedienung sein? Was ist, wenn Sie von lokalbranch1
auf die Fernbedienung übertragen möchtenorigin branch2
?<remote>/<branch>
git push origin :branch2
denkt, dass er nur den aktuellen lokalen Zweig auf die Fernbedienung schiebtbranch2
und stattdessen die Fernbedienung löschtbranch2
! Der richtige Weg istgit push origin HEAD:branch2
.Sicher, obwohl es nur funktioniert, wenn es ein schneller Vorlauf von BRANCH2 ist oder wenn Sie es erzwingen. Die richtige Syntax dafür ist
Weitere Informationen zur Funktionsweise finden Sie in der Beschreibung einer "refspec" auf der git push-Manpage . Beachten Sie auch, dass sowohl ein Force-Push als auch ein Reset Vorgänge sind, die "den Verlauf neu schreiben" und nicht von schwachen Herzen versucht werden sollten, es sei denn, Sie sind absolut sicher, dass Sie wissen, was Sie in Bezug auf Remote-Repositorys und andere tun Leute, die Gabeln / Klone des gleichen Projekts haben.
quelle
git push --force remote local-branch:remote-branch
.Es ist sehr einfach. Angenommen, Sie haben Änderungen an Ihrem Zweig A vorgenommen, der sich sowohl lokal als auch remote befindet, möchten diese Änderungen jedoch auf Zweig B übertragen, der nirgendwo vorhanden ist.
Schritt 01: Erstellen und Wechseln zum neuen Zweig B.
Schritt 02: Fügen Sie Änderungen in der neuen lokalen Verzweigung hinzu
Schritt 03: Übernehmen Sie die Änderungen
Schritt 04: Änderungen in den neuen Zweig B verschieben . Mit dem folgenden Befehl wird auch remote ein neuer Zweig B erstellt
Jetzt können Sie anhand von Bitbucket überprüfen, ob der Zweig B ein Commit mehr als der Zweig A hat . Und wenn Sie den Zweig A auschecken, werden diese Änderungen nicht vorhanden sein, da sie in den Zweig B verschoben wurden .
Hinweis: Wenn Sie Ihre Änderungen in Zweig A übernommen haben und danach diese Änderungen in den neuen Zweig B verschieben möchten, müssen Sie diese Änderungen zuerst zurücksetzen. #HappyLearning
quelle
In meinem Fall hatte ich ein lokales Commit, das nicht
origin\master
verschoben, sondern an meine lokalemaster
Niederlassung übergeben wurde. Dieses lokale Commit sollte jetzt in einen anderen Zweig verschoben werden.Mit Git Extensions können Sie Folgendes tun:
Sie können dies auch über die GIT-Befehlszeile tun . Beispiel von David Christensen kopiert :
quelle
Ich habe ein schlechtes Ergebnis mit
git push origin branch1:branch2
Befehl:In meinem Fall
branch2
wird gelöscht undbranch1
mit einigen neuen Änderungen aktualisiert.Wenn Sie also nur die Änderungen auf die Push wollen
branch2
von derbranch1
, versuchen Verfahren unter:branch1
:git add .
branch1
:git commit -m 'comments'
Am
branch1
:git push origin branch1
Am
branch2
:git pull origin branch1
Ein
branch1
: Zum vorherigen Commit zurückkehren.quelle
Sie können dies leicht tun
quelle
quelle
Sie haben sich zu BRANCH1 verpflichtet und möchten dieses Commit entfernen, ohne die Änderungen zu verlieren? Git Reset ist das, was Sie brauchen. Tun:
Wenn Sie möchten, dass BRANCH2 ein neuer Zweig ist. Sie können dies auch am Ende mit einem anderen Zweig zusammenführen, wenn Sie möchten. Wenn BRANCH2 bereits vorhanden ist, lassen Sie diesen Schritt weg.
Dann mach:
Wenn Sie das Commit für den von Ihnen festgeschriebenen Zweig zurücksetzen möchten. Dies übernimmt die Änderungen der letzten drei Commits.
Führen Sie dann die folgenden Schritte aus, um die zurückgesetzten Commits auf BRANCH2 zu übertragen
Diese Quelle war hilfreich: https://git-scm.com/docs/git-reset#git-reset-Undoacommitmakingitatopicbranch
quelle