2016-05-18 11 views
0

Momentan habe ich zwei Zweige: Master und Dev. In der letzten Woche habe ich meine Arbeit auf dem Zweig Master (Zweig falsch) gemacht und jetzt muss ich diese Commits in den Zweig DEV (rechter Zweig) ändern, was gibt es für einen besseren Weg?Commits in einen anderen Zweig ändern

Im mit Github Desktop auf MAC

Cheers, Rafael

+0

Können Sie uns anhand eines Diagramms zeigen, welche Beziehung zwischen den Dev- und Master-Zweigen besteht? –

Antwort

0

Ihre Frage ist unklar. Ich gehe also davon aus, dass du deine alte Version von Master brauchst und du deine neue Version von Dev brauchst. Das bedeutet, dass du deinen Git-Verlauf ändern musst. Wenn Sie diese Commits auf Ihre Fernbedienung übertragen haben, sollten Sie dies nicht tun, da Sie sich nicht mit dem Git-Verlauf anlegen möchten.

Was Sie tun, ist cherry-pick die Commits von Master, und dann setzen Sie Ihren Master vor dem Commits.

Bevor Sie das tun, sollten Sie ein Backup Ihrer Daten:

git checkout master 
git checkout -b backup_master 
git checkout DEV 
git checkout -b backup_DEV 

Wie Kirsche Pick: How to cherry-pick multiple commits

0

Mein Gedanke Patchen zu verwenden, war möglicherweise Konflikte zu vermeiden.

git checkout master 
git format-patch -1 HEAD (if thats all you want) 
git checkout dev 
git apply —check file.patch (check it first) 
git am < file.patch 

ersetzen HEAD mit dem SHA HASH für die älteste verpflichten würden Sie wollen, und dann wird es ein * .patch schaffen für jeden den aktuellen begehen. Dann wenden Sie sie in der richtigen Reihenfolge einzeln auf dev an.

Dann könnten Sie Master erneut überprüfen, ändern Sie die Commit vor denen, die Sie nicht auf Master wollen, indem Sie diesen SHA-Hash auschecken. Dann commit es mit einer guten Nachricht zurück. Ich denke, das könnte es tun. Bitte korrigieren Sie mich, wenn ich falsch verstanden habe oder wenn ich eklatant falsch bin.

0

Wenn Sie diese Commits an Ihre Fernbedienung gesendet haben, können Sie die COMMIT-Funktion nicht aus der MASTER-Verzweigung entfernen.

Sie können eine Sache tun, den neuesten MASTER-Zweigcode zu DEV Branch zu holen.

dafür: wieder nach oben DEV verzweigen Sie git checkout -b backup_DEV dann:

git checkout DEV 

git stash 

git rebase MASTER 

git push DEV 

git stash pop 

Jetzt können Sie, dass in DEV begehen sehen.