Skip to content

Instantly share code, notes, and snippets.

@dkurzaj
Last active April 25, 2019 15:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dkurzaj/b50d67c26fbf8fc5c3b05d7cc55dacf5 to your computer and use it in GitHub Desktop.
Save dkurzaj/b50d67c26fbf8fc5c3b05d7cc55dacf5 to your computer and use it in GitHub Desktop.

S'assurer qu'on est sur la branche develop

git checkout develop

S'assurer que la branche est à jour

git pull

Maintenant pour faire les développements qu'on a en tête on crée une nouvelle branche qui porte un nom en rapport avec ce qu'on veut faire.

git checkout -b ajout-de-telle-fonctionalite

En fait git checkout sert normalement à passer d'une branche à une autre, pas à en créer une. C'est l'option -b qui fait qu'on crée une nouvelle branche au moment où on passe dessus. Cette nouvelle branche se crée en ayant pour base la branche sur la quelle où on se trouve juste avant (en l'occurrence develop). Afin d'avoir la liste des branches locale on peut utiliser la commande suivante (on peut voir d'ailleurs dans le résultat qu'on est bien sur la nouvelle branche ajout-de-telle-fonctionalite) :

git branch

Maintenant il faut qu'on envoie cette branche nouvellement créée en locale, vers notre dépôt git :

git push -u origin ajout-de-telle-fonctionalite

Maintenant on peut faire tous nos travaux et nos commits sur cette branche. Une fois qu'on a fini (ou de temps en temps), on peut récupérer ce qui a été fait sur develop afin que notre branche ajout-de-telle-fonctionalite garde les nouveautés ajoutées entre temps à develop. D'abord on met à jour notre branch develop locale, puis on retourne sur notre branche :

git checkout develop
git pull
git checkout ajout-de-telle-fonctionalite

Maintenant deux options s'offrent à nous pour appliquer les nouveautés de develop sur ajout-de-telle-fonctionalite. Ces deux méthodes sont l'objet de discussions :

git rebase develop

Il faut ensuiter pousser cette version modifiée de l'historique vers la branche ajout-de-telle-fonctionalite distante (en mode forcé car on change l'historique et que cela peut être dangereux suivant la branche où on le fait, cf. liens de discussions).

git  push -f

L'autre option est de merger le contenu de develop dans ajout-de-telle-fonctionalite. (À nouveau, il y aura peut-être des conflits à corriger, la commande nous dit alors de faire des git add et git merge --continue une fois les conflits résolus.)

git merge develop

Il faut ensuite pousser notre merge vers le serveur distant (pas besoin du mode forcé dans ce cas) :

git push

Cela va créer un commit consacré au merge. Contrairement à la méthode du rebase, qui ne va pas créer de commit supplémentaire. Maintenant que notre branche est à jour avec develop et qu'elle n'a pas de conflit, on peut aller sur l'interface de Gitlab/Github pour faire une demande de merge/pull request depuis ajout-de-telle-fonctionalite vers develop. Cela va nous indiquer toutes les modifications faites dans ajout-de-telle-fonctionalite par rapport à develop, quelqu'un d'autre peut ainsi vérifier le code avant de l'accepter dans la branche develop qui sert de base de travail commune à tout le monde. Une fois notre branche ajout-de-telle-fonctionalite acceptée et mergée dans develop il ne nous reste plus qu'à la supprimer, pour ça on retourne sur develop sur laquelle on récupère les modifications qui ont été ajoutée suite à notre merge/pull request, et on supprime la branche ajout-de-telle-fonctionalite qui ne nous servira plus.

git checkout develop
git pull
git branch -d ajout-de-telle-fonctionalite

Et voilà ! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment