2015-09-14 13 views
5

Vorrei spingere tutte le modifiche in un ramo in un altro ramo (ramo esistente) senza unire.Come duplicare un ramo in un altro ramo esistente in git

Per l'esempio, considerare due rami branch1 a branch2. Sia branch1 e branch2 tracciano rispettivamente origine/ramo1 e origine/ramo2.

Branch1 ha commette A, B, C, D, E, F Branch2 ha commette A, B, D, F

Vorrei fare Branch2 esattamente come Branch1. Scegliere e fondere la ciliegia darebbe un conflitto che non voglio perdere tempo a risolvere, perché tutto quello che sto cercando di fare è replicare ciecamente branch1 in branch2.

sono in grado di fare questo

git checkout branch1 # Moves to branch1 
git push origin :branch2 # Deletes remote branch origin/branch2 
git branch -d branch2 # Deletes the local copy of this branch 
git pull 
git push origin HEAD:branch2 # Creates new branch in remote repository from the HEAD at local branch branch1 

Esiste un modo migliore di fare questo attraverso alcune opzioni --force nei comandi di unione. Non voglio cancellare il ramo ogni volta solo per creare un nuovo ramo con lo stesso nome.

Grazie

+1

possibile duplicato di [Come ripristinare un ramo all'altro ramo con git?] (Http://stackoverflow.com/questions/15943434/how-to-reset-a-branch- to-another-branch-with-git) – Joe

+0

ma se il tuo commit si risolve in conflitto, allora perché mai vorresti buttare alla cieca tutto dentro? – DevDonkey

+0

Non si resetteresti come 'git checkout branch2'' git reset --hard branch1' è un'opzione per te? – Melebius

risposta

-2
git checkout branchA 
git merge -X theirs branchB 
+0

-X è solo l'opzione strategica. La strategia predefinita ricorsiva usa la strategia, opzione nostra solo per i conflitti. Vedi la guida di git-merge. – Weidenrinde

+0

Un elenco di possibili soluzioni: http://stackoverflow.com/questions/4911794/git-command-for-making-one-branch-like-another – Weidenrinde

Problemi correlati