15'' GIT

Git : rappel
Publier son travail
- Localement :
- git add (git add . ajoute tout)
- git commit (création commit local)
- Publier :
- git push

Pull
- Aucun commit local non push
- git pull
- Pour un pull avec des commits locaux
- git pull --rebase=preserve
- pensez à faire un alias (ex : pullrp)
- ne peut pas être exécuté avec des fichiers locaux modifiés --> pensez a git stash
Branche
- Branche de la dernière version : master
- Branche pour chaque versions maintenues : G6R2, G6R3...
- Tag pour les correctifs : G6R3C3, G6R4C1...
- C'est celui qui commence le nouveau correctif qui créé le tag.
- 1 Branche par feature !
Nommage
- Story : story-fti4181_ssl_two_way
- CR : cr-385-fti5678_je_suis_un_cr
- Defect : defect-410-fti4185_js_disable
- Transverse/Autre : trans-up_version_G6R5
Se déplacer sur les branches
- git checkout <branch_name>
- Création : git checkout -b <branch_name>
- Création a partir de l'état courant : penser à pull !
- Checkout remote branch :
- git fetch
- git checkout <branch_name>
Merge
- On se place sur la branche cible puis
- git pull
- git merge <branch_to_merge>
- En cas de conflit
- On règle les conflits (voir git status)
- git add <fichiers_conflit>
- git commit
Dev G6R4 exemple
- git checkout G6R4
- git pull
- git checkout -b trans_ma_feature
- (je fais mes dev)
- git add . && git commit
- git push
- git checkout G6R4
- git pull
- git merge trans_ma_feature
- git push
- git checkout master
- git pull
- git merge trans_ma_feature
- git push
general Tips
- La partie add/commit est facile/pratique sur Eclipse
- Google est un expert Git
- Les messages d'erreurs Git contiennent souvent la solution
- Tant que ce n'est pas push on peut (presque) tout corriger
- git status --> commande magique !
Command tips
-
git stash
- sauvegarde et enlève tous les changements (sur les fichiers tracké, -u pour tous les fichiers)
- git stash apply les rejoues (même sur une autre branche)
-
git commit --amend (sur un commit non push)
- modification du dernier commit (contenu + commentaire)
-
git rebase -i (sur des commits non push)
- couteau suisse mais permet de modifier les commits (contenu + commentaire)
Command tips
-
git reset HEAD^ (sur un commit non push)
- supprime le dernier commit MAIS garde les changements
Phabricator
vs
Gitlab
Pahbricator
- Pros
- liste exhaustive des commits à revoir
- existant
- workflow avec CI
- Cons
- liste exhaustive des commits à revoir
- pas de revue de branche
- CI cassée par des commits qui ne passent pas la revue
Gitlab
- Pros
- revue de branche
- merge request
- clarté
- un outil en moins
- Cons
- revue avant CI (si merge request)
- plus facile de rater un commit (cas sans merge request)
Demo
merge request
Demo
Avec DÉPLOIEMENT QI Obligatoire
Discussion



(et toujours si besoin/envie)
15'' : https://try.github.io
ultra complet : http://learngitbranching.js.org/
15'' Git
By Anthony Gauchy
15'' Git
Présentation rapide sur Git. Puis comparaison Phabricator/Gitlab
- 63