PROJET AUTOBLOG


Tiger-222

Archivé

Site original : Tiger-222

⇐ retour index

Git : revoir ses branches

mardi 29 octobre 2013 à 12:57
Suite à la lecture de l'article My Git Branching Model -- William DURAND, je me suis rendu compte que c'était une peu brouillon de mon côté. Je trouve son modèle pratique.

Le cas de Pombo


J'ai donc voulu revoir le modèle de Pombo, entre autres. L'ancien modèle était le suivant : une seule branche master, avec tout dedans à la rache.
La dernière version stable de Pombo est la 0.0.10, soit le commit n°31. La version en cours de développement en est au commit n°112. Vous voyez le bousin arriver ?

Coment faire ? La réponse est simple, la méthode aussi (enfin après quelques recherches) :
En pratique, ça se fera tel que :
# créer la branche temporaire master-tmp à partir du commit n°31
git checkout 35d7690 -b master-tmp

# renommer la branche master en develop
git branch -m master develop

# renommer la branche master-tmp en master
git branch -m master-tmp master

# pousser la branche develop
git push origin develop
# git config --global push.default simple

# synchroniser la branche develop avec celle sur le serveur distant
git checkout develop
git push --set-upstream origin develop

# supprimer la branche master distante, devenue obsolète
# si vous utilisez GitHub, pensez à déclarer la branche develop comme celle par défaut
git push origin :master

# pousser la branche master nouvellement recréée
git push origin master
# si vous utilisez GitHub, pensez à remettre la branche master comme celle par défaut

# synchroniser la branche master avec celle sur le serveur distant
git checkout master
git push --set-upstream origin master
Dans tout ça, la nouvelle commande pour moi est git checkout <id> -b <nom>.


Nouvelle fonctionnalité


Dorénavant, lors de l'ajout d'une fonctionnalité, j'ajouterai une nouvelle branche feat-<nom> depuis develop :
git checkout -b feat-<nom> develop

Mémo pour pousser une fonctionnalité dans la branche develop :
git checkout develop
git pull --ff-only origin develop
git checkout feat-<nom> git merge feat-<nom>
git rebase develop
git merge --no-ff feat-<nom>
git push origin develop


Comme je compte appliquer ce modèle de branches à mes autres projets, voyez-vous une meilleure solution ?