Conclusion
Ce cours nous a donné l'occasion de mieux comprendre le fonctionnement de Git, de nous initier à son workflow, d'apprendre les commandes de base, d'aborder les notions de branche et d'interagir avec un dépôt distant. Il y avait beaucoup de matière au programme, mais comme nous l'avions mentionné en introduction, ce qui est le plus important avec Git est de bien maîtriser sa mécanique, c'est pourquoi nous avons commencé par cet aspect.
Comme toute nouvelle technologie que nous apprenons, Git demande de la pratique et il est important de l'intégrer dans vos tâches quotidiennes. Bien que soit un outil complexe et que nous n'avons effectué qu'un survol rapide de son utilisation, vous verrez que les commandes vues dans ce cours devraient vous suffire dans vos tâches de gestion de version et d'interaction avec des dépôts distants.
Au terme de ce cours, vous devriez être en mesure de faire de Git votre outil de gestion de versions pour vos projets de scripting ou de développement. Si vous travaillez plutôt du côté des opérations et de l'infrastructure, vous connaissez maintenant l'outil de base qui vous permettra de vous orienter vers des pratiques DevOps. Quel que soit votre profil, savoir utiliser Git aujourd'hui est une compétence essentielle et nous espérons que ce cours vous aura permis soit de découvrir cet outil ou d'en approfondir sa maîtrise.
Si vous voulez en savoir davantage sur Git, vous pouvez vous référer à la documentation officielle qui met à votre disposition un ouvrage nommé Pro Git qui est le livre de référence sur le sujet. Vous pouvez le consulter ici : Git - Documentation (git-scm.com).
Récapitulatif des commandes Git
Pour terminer, voici une synthèse des commandes Git utilisées tout au long de ce cours.
# Configuration
git --version Faire afficher la version de Git
git config --global user.name "Prénom Nom" Configurer le nom d'utilisateur de Git
git config --global user.email "[email protected]" Ajouter le mail de l'utilisateur de Git
git config --global --list Faire afficher les configurations globales de Git
git init Initialiser un dépôt Git
# Workflow Git
git add Déplacer un (ou plusieurs) fichier(s) ou modifications dans l'espace de staging
git commit Créer un snapshot des changements (contenu de l'espace de staging) et les conserver dans la base de données .git
# Affichage d'information, retrait, suppression
git status Faire afficher le statut des fichiers dans Git
git log Faire afficher l'information sur les derniers commits
git diff Faire afficher les changements entre le répertoire de travail et l'espace de staging
git reset Retirer les fichiers ou modifications de l'espace de staging
git rm Supprimer les fichiers ou modifications de l'espace de staging et du répertoire de travail
git revert Annuler un ou plusieurs commits
git reset Restaurer une version ou commit antérieur
git show Faire afficher l'historique des derniers commits (snapshots)
# Gestion des branches et fusion
git branch Créer une branche (suivi du nom de la branche) ou faire afficher les branches
git checkout <nom branche> Se déplacer sur une branche
git merge <nom branche> Fusionner une branche avec la branche en cours
git merge --squash <nom branche> Fusionner une branche avec la branche en cours (sans conserver l'historique de la branche secondaire)
git rebase <nom_branche_cible> Faire un "rebase" d'une branche sur une branche cible (va réappliquer les commits sur cette dernière)
# Interagir avec un dépôt distant
git clone Copier l'entièreté d'un dépôt distant dans un nouveau répertoire local .git
git remote Créer et faire afficher des dépôts distants
git push Mettre à jour un dépôt distant avec les changements apportés à un dépôt local
git pull Récupérer les changements d'un dépôt distant pour mettre à jour un dépôt local
git fetch Récupérer les changements d'un dépôt distant sans les intégrer à un dépôt local
# Configurer un dépôt local pour interagir avec un dépôt distant
git remote add origin <URL_dépôt_distant> Ajouter une branche "origin" à un dépôt local
git push -u origin <main> ou git push --set-upstream Faire un "push" des derniers "commits" et configurer la branche cible