Git est un système de contrôle de version distribué utilisé pour gérer les projets de développement de logiciels. Il permet aux développeurs de travailler ensemble sur un projet en toute sécurité, en gardant une trace des modifications apportées au code source. Cet article vous présentera les principales fonctionnalités de git, ainsi que les cas d’utilisation les plus courants.
Table of Contents
Installation
Vous pouvez utiliser chocolatey :
choco install git
Cela aura pour effet d’installer git-bash. Mais vous pouvez installer une console bien pratique :
choco install conemu
Espaces de travail
Il existe 3 espaces de travail sous Git :
- Dépôt local
- Base de données ou arbre git (objets, branches, tags, logs) : stocke les données et les métadonnées du projet
- Zone de cache
- Appelée aussi index : stocke un snapshot des changements
- Un moyen de construire progressivement le contenu du futur commit en indexant les modifications qui vont y être associées
- On y ajoute les modifications via « git add »
- Répertoire de travail : la zone de travail locale, là où se trouve votre espace de travail avec tous les fichiers de votre projet
Les objets Git
Le répertoire .git est le dépôt local qui contient toute l’arborescence du projet.
Propriétés communes
- Référencés par une somme de contrôle
- Immuable : écrit une fois et non modifiable par la suite
- Pas de suppression d’objets (tout se conserve)
3 types d’objets
Blob
- Stocke le contenu d’un fichier
- Soit nouveau fichier soit une modification de fichier
- A chaque fois l’intégralité du contenu est enregistré
- Blob initial pour un nouveau fichier
- Nouveau blob pour une modification du fichier
- Identifié via une somme de contrôle (SHA1)
Tree
- Va décrire l’arborescence du projet ~= répertoire
- Une liste de pointeur vers les blobs
- Si modification de fichier –> nouveau blob mais aussi nouveau tree !
- Structure arborescente faite de pointeurs
Commit
- Objet avec le message de commit
- Metadata référençant le tree et le parent (celui qui précède) avec l’auteur et le comitteur
- Le commit est un pointeur sur un tree
- Photographie du projet
Exemple simple d’utilisation :
On configure les informations globales pour git : le nom de l’auteur et son adresse email.
On crée un repository git intitulé « formation ».
On crée un nouveau fichier « README ».
On l’ajoute au cache via git add et on sauvegarde via git commit.
A chaque modification du fichier README, il faudra refaire un git add puis un commit !
git config --global user.name "Pascal MIETLICKI"
git config --global user.email "[email protected]"
git init formation
cd formation
touch README
git add README
git commit -m "Ajout du fichier README"
Les commandes de base
Initialiser un dépôt git
Pour utiliser git sur un projet, vous devez d’abord initialiser un dépôt git. Vous pouvez le faire en utilisant la commande suivante :
git init
Cette commande va créer un nouveau répertoire caché appelé « .git », qui contiendra toutes les informations relatives au dépôt git.
Ajouter des fichiers au dépôt
Une fois que vous avez initialisé un dépôt git, vous pouvez commencer à ajouter des fichiers à celui-ci. Pour ajouter un fichier à un dépôt git, vous utiliserez la commande suivante :
git add nom_du_fichier
Cette commande prend en argument le nom du fichier que vous souhaitez ajouter.
Valider des modifications
Lorsque vous avez fini de modifier vos fichiers, vous devez les valider en utilisant la commande suivante:
git commit -m "message de validation"
Cette commande permet de créer un point de référence dans l’historique du dépôt git, qui va permettre de retrouver les modifications apportées à un fichier à un moment donné.
Les fonctionnalités avancées
Gérer les branches
Les branches vous permettent de travailler sur différentes versions d’un projet en même temps. Vous pouvez créer une nouvelle branche à l’aide de la commande suivante :
git branch nom_de_la_branche
puis basculer d’une branche à l’autre à l’aide de la commande suivante :
git checkout nom_de_la_branche
Fusionner des branches
Une fois que vous avez terminé de travailler sur une branche, vous pouvez fusionner vos modifications avec la branche principale (ou « master ») en utilisant la commande suivante:
git merge nom_de_la_branche
Cette commande va fusionner les modifications apportées à la branche courante avec la branche spécifiée en argument.
Gérer les conflits
Pour éviter les conflits : pensez à faire des merges régulièrement !
Lorsque vous fusionnez des branches, il est possible que des conflits surviennent. Les conflits se produisent lorsque deux branches ont modifié le même fichier de manière incompatible. Pour résoudre les conflits, vous devrez ouvrir les fichiers en conflit et les modifier manuellement pour les résoudre. Une fois que vous avez résolu les conflits, vous pouvez valider les modifications en utilisant la commande de validation de git :
git commit -m "message de validation des modifications résolues"
Travailler avec des dépôts distants
Git permet également de travailler avec des dépôts distants, tels que GitHub ou GitLab. Pour ajouter un dépôt distant à votre projet, vous pouvez utiliser la commande suivante :
git remote add nom_du_dépôt_distant url
Ensuite, vous pouvez synchroniser votre dépôt local avec le dépôt distant en utilisant les commandes « git push » et « git pull ».
Pour obtenir de l’aide sur une commande : git help -w <commande>
git help -w init
git help -w cat-file
Pour voir le contenu d’un fichier : git cat-file
git cat-file <SHA1>
git cat-file -p <SHA1>
Conclusion
Git est un outil puissant pour la gestion de projets de développement de logiciels. Les commandes de base et les fonctionnalités avancées décrites dans cet article vous permettront de gérer efficacement vos projets en utilisant git. N’hésitez pas à consulter la documentation de git pour en savoir plus sur les commandes et les fonctionnalités disponibles.