AdSense Placeholder
Slot: header_reference_page
Git enregistre des instantanés d'un projet. Trois endroits comptent : l'arbre de travail (vos fichiers), la zone d'index (ce qui ira dans le prochain commit) et le dépôt (l'historique enregistré). La plupart des commandes déplacent des modifications entre eux. Toutes les commandes ci-dessous ont été vérifiées avec une vraie installation de Git.
Commandes par tâche
| Commande |
Ce qu'elle fait |
git config --global user.name "Ana" |
Définit le nom enregistré dans vos commits |
git init |
Crée un nouveau dépôt dans ce dossier |
git clone <url> |
Copie un dépôt distant avec son historique |
Enregistrer les modifications
| Commande |
Ce qu'elle fait |
git status |
Affiche les fichiers modifiés, indexés et non suivis |
git add <file> |
Indexe un fichier pour le prochain commit (git add -p indexe des morceaux choisis) |
git commit -m "message" |
Enregistre les modifications indexées avec un message |
git commit --amend |
Réécrit le dernier commit (message ou contenu) ; seulement avant de le pousser |
git diff |
Affiche les modifications non indexées (--staged pour les indexées) |
Branches
| Commande |
Ce qu'elle fait |
git branch |
Liste les branches (-d nom supprime une branche fusionnée) |
git switch <branch> |
Passe à une autre branche (-c nom la crée d'abord) |
git merge <branch> |
Fusionne une autre branche dans la branche courante |
git rebase <branch> |
Rejoue vos commits au-dessus d'une autre branche (-i édite, fusionne, réordonne) |
git cherry-pick <commit> |
Copie un commit sur la branche courante |
Dépôts distants
| Commande |
Ce qu'elle fait |
git remote -v |
Liste les dépôts distants et leurs URL |
git fetch |
Télécharge les nouveaux commits sans toucher à vos fichiers |
git pull --rebase |
Récupère et rejoue vos commits locaux au-dessus (historique plus propre qu'une fusion) |
git push -u origin <branch> |
Publie une branche et la mémorise pour un simple git push |
git push --force-with-lease |
Écrase la branche distante seulement si personne n'a poussé entre-temps |
Explorer
| Commande |
Ce qu'elle fait |
git log --oneline --graph |
Historique compact avec les lignes de branches |
git show <commit> |
Affiche un commit et ses modifications |
git blame <file> |
Montre qui a modifié chaque ligne en dernier |
git grep "text" |
Recherche dans les fichiers suivis |
git bisect start |
Recherche dichotomique du commit qui a tout cassé |
Annuler
| Commande |
Ce qu'elle fait |
git restore <file> |
Annule les modifications d'un fichier (--staged le retire de l'index) |
git revert <commit> |
Ajoute un commit qui annule un ancien ; sûr pour un historique partagé |
git reset --soft HEAD~1 |
Annule le dernier commit en gardant ses modifications indexées |
git reset --hard <commit> |
Déplace la branche et jette toutes les modifications ultérieures : destructif |
git reflog |
Liste les positions de HEAD ; le chemin de retour après la plupart des erreurs |
git clean -fd |
Supprime fichiers et dossiers non suivis ; essayez -n d'abord |
Remisage et étiquettes
| Commande |
Ce qu'elle fait |
git stash push -u |
Met de côté votre travail en cours, fichiers non suivis inclus |
git stash pop |
Restaure le dernier remisage et le supprime |
git tag -a v1.0 -m "Release" |
Marque une version avec une étiquette annotée |
Annuler des erreurs
| Situation |
Solution |
| J'ai modifié un fichier et je veux l'ancienne version |
git restore <file> |
| J'ai indexé le mauvais fichier |
git restore --staged <file> |
| Le message de mon dernier commit contient une faute |
git commit --amend |
| J'ai commité sur la mauvaise branche |
git switch <bonne-branche>, git cherry-pick <commit>, puis git reset --hard HEAD~1 sur la mauvaise branche |
| J'ai poussé un mauvais commit que d'autres ont déjà récupéré |
git revert <commit> |
| J'ai fait un reset ou un rebase et perdu des commits |
git reflog, puis git reset --hard <ancien-hash> |
Les commandes qui réécrivent l'historique (reset --hard, rebase, push --force) sont sûres sur des commits que vous seul possédez. Une fois que d'autres les ont récupérés, préférez git revert.
Bonnes habitudes
- Faites de petits commits cohérents avec un message qui dit pourquoi, à l'impératif : « Corrige la redirection de connexion ».
- Faites un pull ou un fetch avant de pousser et utilisez
--force-with-lease plutôt que --force.
- Gardez les secrets hors du dépôt. Un mot de passe commité reste dans l'historique même si vous supprimez le fichier. Utilisez un
.gitignore pour les fichiers de build et locaux : le Générateur de .gitignore en écrit un pour votre stack.
- Utilisez
git status en permanence. Il indique aussi la prochaine commande à lancer.
Voyez Git pour l'idée derrière l'outil et Aide-mémoire de la ligne de commande Linux pour les commandes shell que vous utiliserez à côté.