Les Commandes de Base
Initialiser un dépôt
Pour commencer à utiliser Git dans un projet, vous devez d'abord initialiser un dépôt Git. Cela crée un environnement Git dans votre dossier de projet.
Commande pour initialiser un dépôt :
git init
Cette commande crée un dossier caché nommé .git dans le répertoire courant. Ce dossier contient toutes les informations nécessaires pour que Git suive les modifications de vos fichiers.
Exemple : Tapez git init dans le dossier de votre projet pour activer Git sur celui-ci.
Ajouter des fichiers au suivi
Pour que Git commence à suivre un fichier ou une modification, il faut l'ajouter à la zone de préparation. Cette étape vous permet de sélectionner précisément les modifications à enregistrer.
Commande pour ajouter un fichier :
git add <nomDuFichier>
Si vous souhaitez ajouter plusieurs fichiers spécifiques, vous pouvez le faire en les listant séparément dans la commande :
git add <nomDuFichier1> <nomDuFichier2> <nomDuFichier3>
Vous pouvez aussi ajouter tous les fichiers modifiés d'un coup en utilisant la commande suivante :
git add .
La commande git add . n'ajoute que les nouveaux fichiers ainsi que ceux qui ont été modifiés. Elle n'ajoute pas les fichiers qui n'ont subi aucun changement, ce qui rend cette commande optimisée et utile pour ajouter rapidement toutes les modifications.
Enregistrer les modifications
Une fois les fichiers ajoutés au suivi, il faut enregistrer leurs modifications dans l'historique. Cette action permet de conserver une trace des changements, accompagnée d'un message décrivant ce qui a été fait.
Commande pour enregistrer les modifications :
git commit -m "Résumé du commit"
Il est recommandé d'écrire des résumés clairs et concis, idéalement de moins de 50 caractères. Cela permet d'expliquer brièvement ce qui a été modifié tout en maintenant un historique lisible et compréhensible.
Exemple : Si vous avez ajouté un nouveau fichier nommé contact.html, vous pouvez enregistrer avec :
git commit -m "Ajoute une page contact (contact.html)"
Vous pouvez aussi ajouter une description au commit, en ajoutant une deuxième fois l'option -m :
git commit -m "Résumé du commit" -m "Description du commit"
Si vous n'utiliez pas l'option -m, Git ouvrira l'éditeur de texte configuré pour vous permettre d'écrire le message du commit. Assurez-vous de laisser une ligne vide entre le titre (résumé du commit) et la description détaillée pour respecter les conventions standard.
Visualiser l'historique
Git conserve un historique détaillé des enregistrements effectués. Vous pouvez consulter cet historique pour voir les modifications précédentes.
Commande pour afficher l'historique :
git log
Cette commande liste les enregistrements précédents avec des informations comme l'auteur, la date et le message associé. Pour un aperçu plus compact, utilisez :
git log --oneline
Pour afficher les détails d'un commit précis :
git show <SHA>
Le terme <SHA> désigne l'identifiant unique attribué à chaque commit dans Git. Vous pouvez le récupérer via la commande git log.
Marquer les versions clés dans l'historique
Pour identifier des étapes clés du projet, comme des versions importantes (par exemple, v1.0 ou v2.0), il est possible de marquer les commits avec des étiquettes (tags).
Créer un tag léger sur le dernier commit :
git tag <nomDuTag>
Créer un tag léger sur un commit spécifique :
git tag <nomDuTag> <SHA>
Créer un tag annoté sur le dernier commit :
git tag -a <nomDuTag> -m "Message du tag"
Créer un tag léger sur un commit spécifique :
git tag -a <nomDuTag> <SHA> -m "Message du tag"
Sélectionner un commit à partir de son tag :
git show <nomDuTag>
Supprimer un tag sur le dépot local :
git tag -d <nomDuTag>
Exclure des éléments lors des enregistrements
Dans un projet, certains fichiers ou dossiers, comme des fichiers temporaires, des configurations locales ou des données sensibles, ne doivent pas être partagés. Pour maintenir un dépôt propre et sécurisé, ces éléments peuvent être exclus du suivi grâce au fichier .gitignore.
Cela est particulièrement important lorsque l'on travaille avec des dépôts distants publics, car ces fichiers pourraient être visibles à tous. Nous reviendrons sur les spécificités des dépôts distants et leur gestion dans le chapitre consacré à GitHub.
Pour créer un fichier .gitignore, placez-le à la racine du projet ou dans un dossier spécifique, puis indiquez les fichiers ou dossiers à exclure :
# Exclut tous les dossiers nommés "dossier_sensible" situés dans le même dossier
# ou les sous-dossiers du fichier ".gitignore".
dossier_sensible/
# Exclut le dossier "node_modules" situé dans le même dossier du fichier ".gitignore".
/node_modules/
# Exclut tous les fichiers ayant l'extension "log" situés dans le même dossier ou
# les sous-dossiers du fichier ".gitignore".
*.log
# Exclut tous les fichiers nommés ".env" situés dans le même dossier ou
# les sous-dossiers du fichier ".gitignore".
.env
Pour vérifiez si vos fichiers ont bien été ignorés, vous pouvez utiliser la commande check-ignore:
git check-ignore -v <chemin/vers/le/fichier>
Si vous ajoutez ou modifiez un fichier .gitignore alors que certains fichiers sont déjà suivis par Git, il est nécessaire de les retirer de l'index pour que Git cesse de les suivre lors des prochains commit. Pour cela, utilisez la commande suivante :
git rm --cached <chemin/vers/le/fichier>
Si vous souhaitez exclure un dossier déjà suivi, ainsi que tout son contenu, utilisez la commande suivante :
git rm -r --cached <chemin/vers/le/dossier>
Après avoir mis à jour le fichier .gitignore, vous devez effectuer un commit pour enregistrer ces modifications :
git commit -m "Mise à jour du fichier .gitignore"
Exercices
Exo-commandes-de-base-1
- Créez un dossier nommé git-exo-commandes-de-base.
- Créez un fichier README.md à la racine du projet.
- Ajoutez le contenu suivant # exo-commandes-de-base. dans le fichier README.md.
- Initialisez un dépôt Git
- Ajoutez le fichier à la zone de préparation.
- Réalisez un commit avec le message suivant "Initial commit".
- Visualisez le commit.
Exo-commandes-de-base-2
- Reprenez le dossier de l'exercie précédent.
- Créez un fichier index.html à la racine du projet.
- Ajoutez une balise <p> contenant du texte (ex: 'Lorem ipsum') au fichier index.html.
- Ajoutez le fichier à la zone de préparation.
- Réalisez un commit avec un message décrivant l'ajout de ce fichier.
- Visualisez les commits avec l'apperçu compact.
Exo-commandes-de-base-3
- Reprenez le dossier de l'exercie précédent.
- Créez un dossier temp/ à la racine du projet.
- Créer un fichier sys.log dans le dossier temp.
- Créer un fichier auth.log dans le dossier temp.
- Ajoutez les fichiers à la zone de préparation.
- Réalisez un commit avec un message décrivant l'ajout du dossier et de ces fichiers.
- Visualisez les commits.
- Créez un tag nommé v0.1 sur le premier commit.
- Créez un tag nommé v1.0 sur le deuxième commit.
- Visualisez les commits pour vérifiez que les tags ont bien été attribués aux bons endroits.
- Effacez le tag nommé v0.1.
- Visualisez les commits pour vérifiez que le tag nommé v0.1 a bien été supprimé.
Exo-commandes-de-base-4
- Reprenez le dossier de l'exercie précédent.
- Créer un fichier .ENV à la racine du projet.
- Créer un fichier .gitignore.
- Utilisez le fichier .gitignore pour ignorer le fichier .ENV.
- Vérifiez que le fichier .ENV a bien été ignoré.
- Ajoutez les fichiers à la zone de préparation.
- Réalisez un commit avec un message décrivant l'ajout de ce fichier.
- Visualisez les commits avec l'apperçu compact.
Exo-commandes-de-base-5
- Reprenez le dossier de l'exercie précédent.
- Utilisez le fichier .gitignore pour ignorer le dossier temp/.
- Vérifiez que le dossier temp/ a bien été ignoré.
- Le dossier ne devrait pas être ignoré car il a déjà été suivi lors des derniers commits.
- Retirer le dossier temp/ de l'index.
- Vérifiez à nouveau que le dossier temp/ a bien été ignoré.
- Ajoutez le fichier à la zone de préparation.
- Réalisez un commit avec un message décrivant la mise à jour de ce fichier.
- Visualisez le dernier commit en détail.