Dans mon référentiel, j'ai une branche appelée aq
sur laquelle je travaille.
J'ai ensuite commis de nouveaux travaux et des bogues dans master
.
Quel est le meilleur moyen d’inscrire ces commits dans la branche aq
? Créez une autre nouvelle branche à partir de master
et fusionnez-la avec aq
?
Vérifiez la branche aq
et rebase de master
.
git checkout aq
git rebase master
Vous devriez être capable de simplement git merge Origin/master
lorsque vous êtes sur votre branche aq.
git checkout aq
git merge Origin/master
Première sortie à maîtriser:
git checkout master
Faites tous les changements, correctif et commits et poussez votre maître.
Retournez dans votre branche 'aq' et fusionnez le maître dans celle-ci:
git checkout aq
git merge master
Votre branche sera à jour avec le maître. Un bon exemple de base de fusion est .2 Git Branching - Branchement et fusion de base.
Rien ne garantit que les correctifs de bogues principaux ne font pas partie des autres commits. Par conséquent, vous ne pouvez pas simplement fusionner. Faire
git checkout aq
git cherry-pick commit1
git cherry-pick commit2
git cherry-pick commit3
...
en supposant que ces commits représentent les corrections de bugs.
À partir de maintenant, conservez les corrections de bogues dans une branche distincte. Vous pourrez juste
git merge hotfixes
quand vous voulez tous les rouler dans la branche dev régulière.
Soit cherry-pick
le correspondant concerné est validé dans la branche aq
ou fusionnez la branche master
dans la branche aq
.
le fusionner avec aq
git checkout master
git pull
git checkout aq
git merge --no-ff master
git Push
Moyen facile
# 1. Create a new remote branch A base on last master
# 2. Checkout A
# 3. Merge aq to A
Pour moi, des modifications étaient déjà en place et je voulais les dernières nouvelles de la branche de base. J'étais incapable de faire rebase
, et cherry-pick
aurait pris une éternité, alors j'ai fait ce qui suit:
git fetch Origin <base branch name>
git merge FETCH_HEAD
alors dans ce cas:
git fetch Origin master
git merge FETCH_HEAD
Vous avez plusieurs options. git rebase master aq
à la branche qui conservera les noms de validation, mais NE PAS REBASE s'il s'agit d'une branche distante. Vous pouvez git merge master aq
si vous ne vous souciez pas de conserver les noms de commit. Si vous souhaitez conserver les noms de validation et qu’il s’agit d’une branche distante, git cherry-pick <commit hash>
la valide sur votre branche.