Ottieni le modifiche dal master alla filiale in Git

Nel mio repository ho un ramo chiamato aq cui sto lavorando.

Ho quindi commesso nuovi lavori e bug nel master .

Qual è il modo migliore per ottenere tali commit nel ramo aq ? Crea un altro nuovo ramo fuori dal master e uniscilo con aq ?

Controlla il ramo aq e rebase dal master .

 git checkout aq git rebase master 

Dovresti essere in grado di git merge origin/master quando sei nel tuo ramo AQ.

 git checkout aq git merge origin/master 

Prima controlla per padroneggiare:

 git checkout master 

Effettua tutte le modifiche, hotfix e commit e spinge il tuo master.

Torna al tuo ramo, ‘aq’, e unisci master in esso:

 git checkout aq git merge master 

Il tuo ramo sarà aggiornato con il master. Un buon esempio di unione è 3.2 Git Branching – Branching di base e unione .

Non vi è alcuna garanzia che le correzioni dei bug principali non siano tra gli altri commit, quindi non è ansible semplicemente unire. Fare

 git checkout aq git cherry-pick commit1 git cherry-pick commit2 git cherry-pick commit3 ... 

supponendo che questi commit rappresentino le correzioni dei bug.

D’ora in poi però, mantieni le correzioni dei bug in un ramo separato. Sarai in grado di

 git merge hotfixes 

quando vuoi lanciarli tutti nel normale ramo dev.

In cherry-pick i commit pertinenti nel ramo aq o unisci il ramo master nel ramo aq .

Qualunque sia il rebase o l’unione è giusto, ma cosa succede se hai più commit nel tuo ramo aq, il rebase o l’unione conterrà altre persone cambia quando invii una richiesta pull, o cosa succede se schiacci il commit in un commit, quindi penso di avere un modo (non nel modo migliore, ma molto sicuro e chiaro)

 # 1. Create a new remote branch A base on last master # 2. Checkout A # 3. Merge aq to A 

Per me, avevo già dei cambiamenti e volevo l’ultimo dal ramo base. Non ero in grado di fare rebase , e cherry-pick avrebbe richiesto per sempre, quindi ho fatto quanto segue:

 git fetch origin  git merge FETCH_HEAD 

quindi in questo caso:

 git fetch origin master git merge FETCH_HEAD 

Unificalo con aq

 git checkout master git pull git checkout aq git merge --no-ff master git push 

Hai un paio di opzioni. git rebase master aq sul ramo che manterrà i nomi di commit, ma NON REBASE se questo è un ramo remoto. È ansible creare un git merge master aq se non si cura di mantenere i nomi di commit. Se vuoi mantenere i nomi di commit ed è un ramo remoto git cherry-pick il commit sul tuo ramo.