2014-12-03 17 views
12

Quando sto fusione di due rami e non possono essere unite automaticamente Github fornisce le seguenti istruzioni:git checkout -b, ramo già esistente

Passo 1: Dalla vostra repository del progetto, portare i cambiamenti e di prova .

git fetch origin 
git checkout -b master origin/master 
git merge develop 

Fase 2: Unire le modifiche e aggiornare su GitHub.

git checkout develop 
git merge --no-ff master 
git push origin develop 

Ma, in questo caso, il ramo master esiste già a livello locale, e la linea git checkout -b master origin/master restituisce questo messaggio:

git checkout -b master origin/master 
fatal: A branch named 'master' already exists. 

è la cosa giusta da fare in questo caso per sostituire quella linea con git checkout master? Mi sono chiesto questo per un po ', un po' preoccupato per quello che potrebbe fare git checkout master rispetto a -b.

risposta

15

Se master non esiste, allora dopo questa riga

git checkout -b master origin/master 

master sarà una punta ramo allo stesso commit come origin/master.

Se si dispone già di un ramo master, potrebbe non essere aggiornato con origin/master, così semplicemente scrivendo

git checkout master 

non è abbastanza. Si potrà anche eseguire

git merge origin/master 

in seguito per portare master aggiornata (in genere questo sarà solo un avanzamento rapido).

+1

È inoltre possibile aggiungere '--ff-only' a * only * avanti e indietro rapidamente anziché creare un merge commit – krd

Problemi correlati