Démarrer un dépôt

  • git init

    Initialise un dépôt Git dans le dossier courant, qu'il soit vide ou déjà rempli de fichiers.

  • git clone ssh://user@serveur/chemin

    Récupère une copie complète d'un dépôt distant, avec tout son historique et ses branches.

  • git clone --depth 1 url

    Clone superficiel : ne récupère que le dernier commit. Beaucoup plus rapide sur un dépôt volumineux ou en intégration continue.

  • git remote -v

    Affiche les dépôts distants connus et leurs URL de lecture et d'écriture.

  • git remote add nom url

    Déclare un nouveau dépôt distant. Par convention, le principal se nomme origin.

  • git remote set-url origin url

    Change l'adresse d'un dépôt distant existant, par exemple pour passer de HTTPS à SSH.

État & différences

  • git status

    Affiche l'état du dossier de travail : fichiers modifiés, indexés ou non suivis. Ajouter -s pour un affichage condensé.

  • git diff

    Affiche les modifications du dossier de travail qui ne sont pas encore indexées.

  • git diff --staged

    Affiche à l'inverse ce qui est déjà indexé, c'est-à-dire exactement ce que contiendra le prochain commit.

  • git diff commitA commitB --name-only

    Liste uniquement les noms des fichiers modifiés entre deux commits. --shortstat donne plutôt un résumé chiffré.

  • git diff -w

    Ignore les différences d'espaces (whitespaces). Très utile après un reformatage automatique.

  • git blame fichier -L 85,90

    Indique qui a modifié quoi, ligne par ligne. L'option -L restreint l'analyse à une plage de lignes.

Indexer & valider

  • git add .

    Ajoute à l'index tous les fichiers modifiés du dossier courant et de ses sous-dossiers, en vue du prochain commit.

  • git add fichier

    Ajoute les fichiers un à un, pour composer des commits plus précis et plus lisibles.

  • git add -p

    Indexation interactive : Git propose chaque bloc de modification et vous choisissez de l'inclure ou non.

  • git commit -m "message"

    Valide les fichiers indexés. Sans -m, Git ouvre un éditeur de texte pour saisir la description.

  • git commit --amend

    Modifie le dernier commit (message ou contenu). S'il a déjà été envoyé, il faudra ensuite un push --force-with-lease.

  • git rm --cached .env

    Cesse de suivre un fichier déjà versionné sans le supprimer du disque. Le réflexe après l'avoir ajouté à .gitignore.

Branches

  • git branch

    Liste les branches disponibles localement et signale la branche active. Ajouter -a pour voir aussi les branches distantes.

  • git switch branche

    Bascule sur une branche existante. Commande moderne, plus lisible que git checkout qui cumule plusieurs rôles.

  • git fetch
    git checkout -b branche origin/branche

    Récupère puis crée localement une branche qui n'existait jusque-là que sur le dépôt distant.

  • git merge branche

    Fusionne la branche indiquée dans la branche active, en créant un commit de fusion si les historiques ont divergé.

  • git rebase branche

    Rejoue les commits de la branche active par-dessus une autre, pour un historique linéaire. À éviter sur une branche déjà partagée.

  • git branch -d branche

    Supprime une branche locale déjà fusionnée. La majuscule -D force la suppression même si du travail serait perdu.

Synchroniser

  • git push

    Envoie les derniers commits locaux vers le dépôt distant, dans la branche active.

  • git push -u origin branche

    Envoie une nouvelle branche locale et l'associe à sa contrepartie distante. Version longue : --set-upstream.

  • git push --force-with-lease

    Écrase l'historique distant, mais refuse de le faire si quelqu'un a publié entre-temps. Toujours préférable à --force.

  • git pull

    Récupère les commits distants et les intègre à la branche locale, selon la stratégie configurée (fusion ou rebase).

  • git pull --rebase --autostash

    Met de côté les modifications en cours, rebase sur la version distante, puis les réapplique. Historique propre garanti.

  • git fetch origin branche

    Télécharge les nouveautés du dépôt distant sans rien modifier dans votre dossier de travail.

Historique

  • git log --oneline

    Affiche le journal des commits condensé sur une ligne chacun : identifiant court et message.

  • git log --graph --decorate --oneline

    Ajoute la représentation graphique des branches et des fusions, ainsi que les noms de branches et d'étiquettes.

  • git log --author="nom" --shortstat

    Filtre le journal par auteur et résume les lignes ajoutées et supprimées à chaque commit.

  • git log fichier

    Retrace l'histoire d'un seul fichier. --stat affiche en plus les statistiques de chaque commit.

  • git show commit

    Affiche le détail complet d'un commit : métadonnées, message et différences introduites.

  • git reflog

    Journal de toutes les actions effectuées localement, y compris celles effacées de l'historique. La bouée de sauvetage après une erreur.

Mettre de côté

  • git stash

    Empile les modifications non validées pour retrouver un dossier de travail propre. Ajouter -m "message" pour les décrire.

  • git stash -u

    Inclut aussi les fichiers non suivis, que git stash laisse en place par défaut.

  • git stash list

    Affiche la pile des mises de côté, du plus récent (stash@{0}) au plus ancien.

  • git stash apply

    Réapplique le stash le plus récent tout en le conservant dans la pile.

  • git stash pop

    Réapplique le stash le plus récent et le retire de la pile dans la foulée.

  • git stash clear

    Vide entièrement la pile. Irréversible : vérifier d'abord avec git stash list.

Annuler & réparer

  • git revert HEAD

    Annule un commit en en créant un nouveau qui inverse ses changements : l'historique est préservé, rien n'est réécrit.

  • git revert --no-edit HEAD~1

    Annule l'avant-dernier commit sans ouvrir l'éditeur pour saisir un message.

  • git reset --soft HEAD~1

    Défait le dernier commit mais conserve toutes les modifications indexées. Idéal quand on a raté son commit.

  • git reset --hard origin/branche

    Réaligne la branche locale sur la distante en écrasant tout. Les modifications non versionnées sont perdues.

  • git restore fichier

    Annule les modifications d'un fichier non indexé. --staged le retire au contraire de l'index sans toucher au contenu.

  • git clean -n puis git clean -f

    Annonce puis supprime réellement les fichiers non versionnés. Options utiles : -d pour les dossiers, -x pour les fichiers ignorés.

Configuration

  • git config --list

    Liste la configuration effective, résultat de trois fichiers par priorité décroissante : .git/config (dépôt), ~/.gitconfig (utilisateur), /etc/gitconfig (système).

  • git config --global user.name nom

    Définit l'identité utilisée dans les commits. À compléter par user.email, sans quoi Git refusera de committer.

  • git config --global --edit

    Ouvre toute la configuration utilisateur dans l'éditeur, pour y ajouter alias et préférences d'un seul tenant.

  • Fichier .gitignore

    Placé à la racine ou dans un sous-dossier, il exclut du versionnement les journaux, fichiers de configuration et dossiers d'envois.

  • git check-ignore -v fichier

    Explique quelle règle, dans quel fichier et à quelle ligne, provoque l'exclusion d'un fichier donné.

Retourner en haut de page