Basé sur @Sailesh et @DavidCulp:
(on branch development)
$ git fetch origin master
$ git merge FETCH_HEAD
(resolve any merge conflicts if there are any)
$ git checkout master
$ git merge --no-ff development (there won't be any conflicts now)
La première commande s'assurera que vous avez tous les commits en amont effectués sur le maître distant, avec une réponse Sailesh qui ne se produirait pas.
Le second effectuera une fusion et créera des conflits que vous pourrez ensuite résoudre.
Après cela, vous pouvez enfin commander master pour passer en master.
Ensuite, vous fusionnez la branche de développement sur le maître local. L'indicateur no-ff créera un nœud de validation dans master pour que toute la fusion soit traçable.
Après cela, vous pouvez valider et pousser votre fusion.
Cette procédure s'assurera qu'il y a un commit de fusion du développement au master que les gens peuvent voir, puis s'ils regardent la branche de développement, ils peuvent voir les validations individuelles que vous avez faites dans cette branche pendant son développement.
Vous pouvez éventuellement modifier votre commit de fusion avant de le pousser, si vous souhaitez ajouter un résumé de ce qui a été fait dans la branche de développement.
EDIT: ma réponse d'origine suggérait un git merge master
qui n'a rien fait, il vaut mieux le faire git merge FETCH_HEAD
après avoir récupéré l'origine / master
git pull -u
définit le suivi en amont de la branche (ou de toutes les branches si vous en appuyez sur plusieurs). Une fois qu'il est défini, le suivi persiste. Il n'y a aucune raison de l'utiliser en permanence.