-
1. Démarrage rapide
-
2. Les bases de Git
-
3. Les branches avec Git
-
4. Git sur le serveur
- 4.1 Protocoles
- 4.2 Installation de Git sur un serveur
- 4.3 Génération des clés publiques SSH
- 4.4 Mise en place du serveur
- 4.5 Démon (Daemon) Git
- 4.6 HTTP intelligent
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Git hébergé
- 4.10 Résumé
-
5. Git distribué
-
6. GitHub
-
7. Utilitaires Git
- 7.1 Sélection des versions
- 7.2 Indexation interactive
- 7.3 Remisage et nettoyage
- 7.4 Signer votre travail
- 7.5 Recherche
- 7.6 Réécrire l’historique
- 7.7 Reset démystifié
- 7.8 Fusion avancée
- 7.9 Rerere
- 7.10 Déboguer avec Git
- 7.11 Sous-modules
- 7.12 Empaquetage (bundling)
- 7.13 Replace
- 7.14 Stockage des identifiants
- 7.15 Résumé
-
8. Personnalisation de Git
- 8.1 Configuration de Git
- 8.2 Attributs Git
- 8.3 Crochets Git
- 8.4 Exemple de politique gérée par Git
- 8.5 Résumé
-
9. Git et les autres systèmes
- 9.1 Git comme client
- 9.2 Migration vers Git
- 9.3 Résumé
-
10. Les tripes de Git
- 10.1 Plomberie et porcelaine
- 10.2 Les objets de Git
- 10.3 Références Git
- 10.4 Fichiers groupés
- 10.5 La refspec
- 10.6 Les protocoles de transfert
- 10.7 Maintenance et récupération de données
- 10.8 Les variables d’environnement
- 10.9 Résumé
-
A1. Annexe A: Git dans d’autres environnements
- A1.1 Interfaces graphiques
- A1.2 Git dans Visual Studio
- A1.3 Git dans Visual Studio Code
- A1.4 Git dans IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine
- A1.5 Git dans Sublime Text
- A1.6 Git dans Bash
- A1.7 Git dans Zsh
- A1.8 Git dans PowerShell
- A1.9 Résumé
-
A2. Annexe B: Embarquer Git dans vos applications
- A2.1 Git en ligne de commande
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Commandes Git
- A3.1 Installation et configuration
- A3.2 Obtention et création des projets
- A3.3 Capture d’instantané basique
- A3.4 Création de branches et fusion
- A3.5 Partage et mise à jour de projets
- A3.6 Inspection et comparaison
- A3.7 Débogage
- A3.8 Patchs
- A3.9 Courriel
- A3.10 Systèmes externes
- A3.11 Administration
- A3.12 Commandes de plomberie
A3.3 Commandes Git - Capture d’instantané basique
Capture d’instantané basique
Pour le flux de travail basique d’indexation du contenu et de sa validation dans votre historique, il n’y a que quelques commandes basiques.
git add
La commande git add
ajoute le contenu du répertoire de travail dans la zone d’index pour le prochain commit.
Quand la commande git commit
est lancée, par défaut elle ne regarde que cette zone d’index, donc git add
est utilisée pour réaliser le prochain commit exactement comme vous le voulez.
Cette commande est une commande incroyablement importante dans Git et est mentionnée ou utilisée des dizaines de fois dans ce livre. Nous allons revoir rapidement quelques utilisations uniques qui peuvent être trouvées.
Nous avons d’abord présenté et expliqué git add
en détails dans Placer de nouveaux fichiers sous suivi de version.
Nous mentionnons comment s’en servir pour résoudre les conflits de fusion dans Conflits de fusions (Merge conflicts).
Nous la passons en revue pour indexer interactivement seulement des parties spécifiques d’un fichier modifié dans Indexation interactive.
Enfin, nous l’émulons à bas niveau dans Les objets arbres pour que vous ayez une idée de ce qu’elle fait en coulisses.
git status
La commande git status
vous montrera les différents états des fichiers de votre répertoire de travail et de l’index.
Quels sont les fichiers modifiés et non indexés et lesquels sont indexés mais pas encore validés.
Dans sa forme normale, elle vous donnera aussi des conseils basiques sur comment passer les fichiers d’un état à l’autre.
Nous couvrons pour la première fois status
dans Vérifier l’état des fichiers, à la fois dans sa forme basique et dans sa forme simplifiée.
Bien que nos l’utilisions tout au long du livre, pratiquement tout ce que vous pouvez faire avec la commande git status
y est couvert.
git diff
La commande git diff
s’utilise lorsque vous voulez voir la différence entre deux arbres.
Cela peut être la différence entre votre répertoire de travail et votre index (git diff
en elle-même), entre votre index et votre dernier commit (git diff --staged
) ou entre deux commits (git diff master brancheB
).
Nous regardons d’abord les utilisations basiques de git diff
dans Inspecter les modifications indexées et non indexées où nous montrons comment voir quels changements sont indexés et lesquels ne le sont pas.
Nous l’utilisons pour chercher de possibles problèmes d’espaces blancs avant de valider avec l’option --check
dans Guides pour une validation.
Nous voyons comment vérifier les différences entre branches plus efficacement avec la syntaxe git diff A…B
dans Déterminer les modifications introduites.
Nous l’utilisons pour filtrer les différences d’espaces blancs avec -w
et comment comparer différentes étapes de fichiers conflictuels avec --theirs
, --ours
et --base
dans Fusion avancée.
Enfin, nous l’utilisons pour comparer efficacement les modifications de sous-modules avec --submodule
dans Démarrer un sous-module.
git difftool
La commande git difftool
lance simplement un outil externe pour vous montrer la différence entre deux arbres dans le cas où vous voudriez utiliser quelque chose de différent de la commande git diff
intégrée.
Nous ne mentionnons ceci que brièvement dans Git Diff dans un outil externe.
git commit
La commande git commit
prend tout le contenu des fichiers qui ont été indexés avec git add
et enregistre un nouvel instantané permanent dans la base de données puis fait pointer la branche courante dessus.
Nous couvrons d’abord les bases de la validation dans Valider vos modifications.
Là nous montrons aussi comment utiliser l’option -a
pour sauter l’étape git add
dans le travail quotidien et comment utiliser l’option -m
pour passer un message de validation en ligne de commande plutôt que d’ouvrir un éditeur.
Dans Annuler des actions, nous couvrons l’utilisation de l’option --amend
pour refaire le commit le plus récent.
Dans Les branches en bref, nous allons plus dans le détail sur ce que git commit
fait et pourquoi elle le fait ainsi.
Nous avons vu comment signer cryptographiquement les commits avec l’option -S
dans Signer des commits.
Enfin, nous regardons ce que la commande git commit
fait en coulisses et comment elle est réellement implémentée dans Les objets commit.
git reset
La commande git reset
est d’abord utilisée pour défaire des choses, comme son nom l’indique.
Elle modifie le pointeur HEAD
et change optionnellement l’index et peut aussi modifier le répertoire de travail si vous l’utilisez avec l’option --hard
.
Cette dernière option rend possible la perte de votre travail par cette commande si elle est mal employée, alors soyez certain de bien la comprendre avant de l’utiliser.
Nous couvrons d’abord effectivement le cas le plus simple de git reset
dans Désindexer un fichier déjà indexé où nous l’utilisons pour désindexer un fichier sur lequel nous avons lancé git add
.
Nous la couvrons ensuite de façon assez détaillée dans Reset démystifié, qui est entièrement dédié à l’explication de cette commande.
Nous utilisons git reset --hard
pour annuler une fusion dans Abandonner une fusion, où nous utilisons aussi git merge --abort
, qui est un peu un enrobage pour la commande git reset
.
git rm
La commande git rm
est utilisée pour supprimer des fichiers de l’index et du répertoire de travail pour Git.
Elle est similaire à git add
dans le sens où elle indexe la suppression d’un fichier pour le prochain commit.
Nous couvrons la commande git rm
dans le détail dans Effacer des fichiers, y compris en supprimant récursivement les fichiers et en ne supprimant les fichiers que de l’index mais en les laissant dans le répertoire de travail avec --cached
.
Le seul autre usage différent de git rm
dans le livre est dans Suppression d’objets où nous utilisons et expliquons brièvement l’option --ignore-unmatch
quand nous lançons git filter-branch
, qui ne sort tout simplement pas d’erreur lorsque le fichier que nous essayons de supprimer n’existe pas.
Cela peut être utile dans le but d’utiliser des scripts.
git mv
La commande git mv
est une commande de faible utilité pour renommer un fichier et ensuite lancer git add
sur le nouveau fichier et git rm
sur l’ancien.
Nous ne mentionnons cette commande que brièvement dans Déplacer des fichiers.
git clean
La commande git clean
est utilisée pour supprimer les fichiers indésirables de votre répertoire de travail.
Cela peut aller de la suppression des fichiers temporaires de compilation jusqu’aux fichiers de conflit de fusion.
Nous couvrons une grande part des options et des scénarios dans lesquels vous pourriez utiliser la commande clean
dans Nettoyer son répertoire de travail.