Git Mono workflow Supporting tagline
Objectif
Décrire un workflow simplissime à utiliser lorsqu’on développe en solo sur un petit projet perso.
Workflow
Au début du developpement
1. Récupérer les commits éventuels qui ne sont pas sur l’ordi sur lequel je m’apprette à développer
git pull --rebase // synchro avec remote repo
2. Créer une branche de développement temporaire - qui permet de rollbacker, de switcher de branche, etc. facilement
git checkout -b temp
3. Developper / Committer
4. A la fin du développement, mettre au propre les commits si nécessaire.
Cette action comportera généralement la fusion de plusieurs commits = squash
git rebase -i HEAD~x
puis, modifier en ajoutant “stash” (ou “s”) pour les lignes contenant les commit à concatener :
pick <sha1> START bla bla
s <sha1> blabla
s <sha1> blabla
...
s <sha1> blabla => jusqu'au dernier commit
enfin, sauvegarder les modifications effectuées :
:wq
ecrire commentaire
:wq
5. Récupérer le travail effectuer dans la branche temporaire
git checkout master // aller sur la branche cible
git merge temp // merger avec la branche temporaire
Normalement, le merge doit correspondre à un fast-forward si on a travaillé qu’avec une (ou des) branche temporaire.
Faire un “rebase” devrait produire le même résultat.
6. Faire un grand nettoyage Faire un grand nettoyage permet de s’assurer qu’il ne traine pas un bout de code non commiter dans la branche de développement temporaire.
git branch -d temp => supprime branche locale
git push origin :temp => supprime la branche remote temporaire
git remote prune origin => supprime de notre repository local toutes les branches remote qui n'existent plus
7. Sauvegarder sur le repo distant
git push --all