Vos commandes Git quotidiennes
Published: 2024-05-15 07:21:08

Que vous travailliez seul ou en équipe, Git est un outil essentiel. Les développeurs l'utiliseront pour les aider à suivre les changements dans leur base de code au fil du temps. Il est parfois appelé une machine à voyager dans le temps mais nous ne voyageons qu'au passé. Il est important de comprendre que vous n'avez pas toujours besoin de GitHub pour travailler avec Git, vous pouvez initialiser Git dans votre projet et commencer à suivre votre code mais pour cet article, nous supposerons que le code principal est dans le cloud (GitHub). Il y a beaucoup de commandes que nous utilisons lorsque nous travaillons avec Git. Mais pour votre travail quotidien en tant que développeur ou développeuse junior par exemple, vous aurez juste besoin de quelques-unes d'entre elles.


### git clone
Un clone est une copie ou une réplique de quelque chose. Cette commande est de loin l'une des plus auto-descriptives de toutes. Oui, vous l'avez deviné, c'est une commande qui nous obtient une copie du dépôt, aussi appelé projet, que nous avons dans le cloud sur notre machine locale. Pour exécuter le code, ouvrez votre terminal à l'endroit où vous souhaitez enregistrer la copie du projet et saisissez la commande suivante :
`git clone <url of your project on GitHub>`

### git branch
Après avoir cloné le dépôt, nous sommes sur la branche principale. Lorsque vous travaillez sur un projet, il n'est pas conseillé de travailler sur la branche principale (anciennement appelée "master") car elle est destinée à contenir le code final. Le code final est considéré comme le code sans bugs en production. En d'autres termes, personne ne touche à la branche principale, c'est pourquoi nous créons de nouvelles branches. Une nouvelle branche porte le nom de son objectif pour la traçabilité ; certaines branches sont appelées "test", "release", "dev", etc. La convention de nomenclature dépend vraiment de l'équipe. Pour ma part, la branche porte le nom du ticket sur l'outil de gestion de projet (Taiga par example). Pour créer une branche, exécutez cette commande dans votre terminal :
`git branch <nom choisi ou nom de ticket>`


### git pull
Pour obtenir toutes les modifications sur une branche particulière, nous devons les récupérer. Cette commande nous aidera à obtenir toutes les modifications présentes sur la branche distante et à les fusionner dans la branche locale. Avec cette commande, les branches locale et distante ont les mêmes informations. Une chose à remarquer avec cette commande est que si deux développeurs ont apporté des modifications sur la même ligne de code, un conflit de fusion peut survenir et comment le résoudre seul est un autre sujet. Exécutez la commande suivante pour récupérer toutes les modifications de votre branche distante dans votre branche locale :
`git pull`


### git checkout
Créer une branche est une partie cruciale du suivi de votre projet avec git mais ce n'est pas tout. Nous devons y travailler et pour ce faire, nous devons quitter (checkout) la branche actuelle sur laquelle nous sommes pour passer à la nouvelle branche que nous avons créée et commencer à y faire des modifications. Comme nous le constatons, c'est un anglais simple. En fait, la langue est tellement intuitive qu'il est presque impossible de rater le point. Pour passer à une nouvelle branche ou à une branche existante, ouvrez votre terminal et exécutez la commande suivante :
`git checkout <nom de la branche>`


### git status
De loin l'une des commandes git les plus utilisées. Cette commande est destinée à donner le statut de la branche actuelle sur laquelle nous sommes. Si la branche a été modifiée, elle vous donnera le nom des fichiers qui ont été modifiés avec leur emplacement. Cela nous permettra de faire une dernière vérification sur les modifications qui ont été apportées et de voir si elles nous conviennent. Si la branche n'a pas de modifications, lorsque nous exécutons la commande, nous verrons un message comme "Déjà à jour". En résumé, cette commande nous aide à voir les fichiers qui ont été modifiés et sont prêts à être ajoutés à notre prochain commit, les fichiers qui ont été modifiés mais pas mis en scène (sauvegardés) et les nouveaux fichiers qui n'ont pas encore été suivis par Git. Pour vérifier le statut de votre branche actuelle, exécutez la commande suivante dans votre terminal:
`git status`


### git add
Après avoir modifié le statut d'un fichier ou créé un nouveau fichier dans la branche actuelle, il est tout naturel de le mettre en scène ou le sauvegarder afin de pouvoir l'inclure dans notre prochain commit, et c'est le rôle de cette commande. Avec cette commande, nous indiquons essentiellement à git d'enregistrer une copie du fichier actuel tel qu'il est avant de le committer. Il est important de comprendre que cette commande ne commit pas les changements, mais conserve plutôt une version du fichier que nous allons commit ultérieurement. Pour mettre en scène vos modifications, exécutez la commande suivante :
`git add <nom du fichier>`
`git add .` mets en scène ou sauvegarde tous les fichiers.


### git commit
Cette commande vise pour moi à sceller le sort d'un ou plusieurs fichiers. En d'autres termes, nous disons à Git que nous sommes d'accord avec toutes les modifications que nous avons apportées à ce moment précis, donc gardez-en une copie permanente. Pour une meilleure compréhension et traçabilité, nous devons ajouter un message à notre commit, donc le drapeau "-m". Le message de commit doit être clair et concis afin que les autres développeurs (ou nous-mêmes) travaillant sur le projet puissent comprendre de quoi il s'agit. Pour commettre vos modifications, exécutez la commande suivante :
`git commit -m "message"`

### git push
La dernière mais non la moindre commande utilisée doit être "git push". Elle transfère les modifications locales vers le dépôt distant (GitHub dans notre contexte). Mais pour pousser ces changements, elle doit d'abord vérifier si la branche pointe vers sa branche distante avec le même nom. Si la branche distante n'existe pas, Git fournira une commande qui configurera une branche amont avec le même nom. La commande ressemblera à ceci : git push --set-upstream origin <nom de la branche locale>. Je ne tape jamais cette commande car elle est toujours fournie par Git. D'autre part, si la branche locale a un homologue distant et est à jour, alors nous pouvons simplement pousser les changements en exécutant la commande suivante : 
`git push`


Comme mentionné quelque part dans ce post, Git a beaucoup plus de commandes utilisées pour effectuer des tâches spécifiques. Mais celles-ci sont celles que j'utilise le plus dans mon travail quotidien. Quelles commandes ajouterez-vous à cette liste comme votre commande Git la plus utilisée au quotidien ?