La plupart des entreprises utilisent Git pour développer et des « features branches » pour intégrer les nouveaux développements ou les corrections de bugs sur la branche principale, le « master ».
Donc, si comme moi vous utilisez Git et GitLab professionnellement ou pour des projets personnels, vous faites tout cela de l’une des deux façons suivantes:
- Avec l’interface graphique de GitLab et les possibilités d’IntellJ IDEA
- En ligne de commande avec les commandes git
On va donc voir dans ce billet comment on peut procéder avec la deuxième façon de faire: la ligne de commande.
1. Un project existant
On va supposer que notre projet de développement existe sur GitLab et qu’on peut le cloner par exemple:
$ git clone git@framagit.org:grumpyf0x48/my-software.git
2. La branche master
D’un qu’un premier commit a été effectué sur la branche principale, « master », on peut voir les branches existantes avec:
$ git branch --all --list
* master
remotes/origin/master
3. Créer une branche
Maintenant, on souhaite développer une fonctionnalité « myfeature » et on va donc créer une branche du même nom.
On peut le faire de deux façons.
En deux commandes
On crée la branche puis on se positionne dessus:
$ git branch myfeature
$ git checkout myfeature
En une commande
$ git checkout -b myfeature
Attention: La branche sera créée à partir de la branche master
locale.
Il peut donc être utile de s’assurer que celle-ci soit à jour (avec git pull
) avec le serveur.
4. Implémenter la fonctionnalité
Par la suite, on va modifier et/ou ajouter des fichiers et faire un certain nombre de commits.
5. Valider la fonctionnalité
Une fois qu’on a terminé, on va valider nos modifications par un push
sur le serveur:
$ git push
fatal: La branche courante myfeature n'a pas de branche amont.
Pour pousser la branche courante et définir la distante comme amont, utilisez
git push --set-upstream origin myfeature
Et là, on se fait jeter ! Ce qui est normal puisque notre nouvelle branche n’existe pour l’instant que localement.
Heureusement, git
nous donne la commande à passer:
$ git push --set-upstream origin myfeature
Décompte des objets: 3, fait.
Delta compression using up to 8 threads.
Compression des objets: 100% (3/3), fait.
Écriture des objets: 100% (3/3), 371 bytes | 0 bytes/s, fait.
Total 3 (delta 0), reused 0 (delta 0)
remote:
remote: To create a merge request for myfeature, visit:
remote: https://framagit.org/grumpyf0x48/my-software/-/merge_requests/new?merge_request%5Bsource_branch%5D=myfeature
remote:
To git@framagit.org:grumpyf0x48/my-software.git
* [new branch] myfeature -> myfeature
La branche myfeature est paramétrée pour suivre la branche distante myfeature depuis origin.
On peut aussi utiliser:
$ git push -u origin myfeature
6. Créer une merge request
Ce qui est bien, c’est que le serveur GitLab nous propose d’emblée un lien pour créer une merge request à partir de nos modifications !
Nous n’avons plus qu’a lancer:
$ firefox https://framagit.org/grumpyf0x48/my-software/-/merge_requests/new?merge_request%5Bsource_branch%5D=myfeature &
7. Conclusion
Si vous souhaitez créer une branche et qu’elle soit visible sur GitLab sans aller sur l’interface graphique de ce dernier, il vous suffit de passer les deux commandes suivantes:
$ git checkout -b myfeature
$ git push -u origin myfeature