Git: Un modèle de branche pour développer seul

Benjamin Longearet 13 novembre 2011 0
Git: Un modèle de branche pour développer seul

Sur la toile on peut trouver des modèles de branches (ou branching model) permettant de rendre plus facile le développement à plusieurs. Notamment un article de Vincent Driessen en anglais, mais gentillement traduit sur le blog de Gerald:

Pour ce qui est du développement seul (ce qui est principalement mon cas en tant que freelance) toutes ces manipulations ne sont pas forcément nécessaire et deviennent rapidement fastidieuse. Je vais essayer de proposer un modèle très simple avec les commandes permettant de le mettre en place.

Un master et un develop

En m’inspirant du modèle cité plus haut, je vais conserver ces deux branches.

master

Cette branche reflète l’état du projet en production. La version de cette branche doit toujours être stable.

develop

Cette branche reflète l’état du projet en développement/pré-production.  Etant seul, ces deux phases peuvent être confondu car dans la plupart du temps on demande au client de tester le développement une fois fini…

Oui mais si le client tarde à tester …

Bon OK, un point pour vous! Dans ce cas là, on va venir créer une branche temporaire de développement à partit de develop le temps que le client valide le projet. Une fois cette validation effectuée, on viendra merger notre branche temporaire sur la branche develop pour de nouveau mettre à jour l’environnement de recettage/pré-production.

Bon maintenant que j’ai expliqué cette astuce de fonctionnement je vais lister les commandes qui permettent d’effectuer ces manipulations.

Cheat GIT pour mémo

Envoyer ces modifications

git commit -a -m "Message"
git push origin branche

L'option -a permet d'ajouter tous les fichiers modifier et non présent dans le .gitignore . Si vous souhaitez gérer plus précisément les fichiers vous pouvez utiliser les commandes suivantes:

git status
git add file1, file2, etc ...
git commit -m "Message"
git push origin branche

Créer une branche à partir d'une autre branche

git checkout -b nouvelle_branche branche_existante

Envoyer une branche git sur le repository

git push origin nouvelle_branche

Merger une branche temporaire sur le develop ou develop sur master

git checkout develop
git merge nouvelle_branche
#Supprime la branche mergée
git branch -d nouvelle_branche
git push origin develop

Récupérer une branche distante (sur le repository)

git pull
git checkout -b branche origin/branche

Supprimer une branche distante (sur le repository)

git push origin :branche

Merger une branche sans rappatrier tous les commits de cette branche

git checkout branche_cible
git merge --no-ff branche_a_merger
git push origin branche_cible

Appliquer un tag

Je vous envoi sur ce lien où le tag est très bien expliqué : http://alx.github.com/gitbook/3_tag_avec_git.html

Envoyer les tags sur le remote

git push --tag

Supprimer un fichier distant (sur le repository mais le conserver localement)

git rm --cached myfile

Bon versionning!

Laissez un message »