Maîtrisez Git avec ce guide complet des commandes : gestion de versions, branching, merging, collaboration et workflows Git pour développeurs modernes.
git init
Initialise un nouveau dépôt Git dans le répertoire courant
--bare--template=<template>⚠️--shared--quiet--separate-git-dir
git clone
Clone un dépôt distant en local
--branch <name>⚠️--depth <depth>⚠️--single-branch--no-tags--recurse-submodules⚠️--shallow-submodules--remote-submodules⚠️--jobs <n>⚠️--template=<template>⚠️--config <key=value>⚠️--origin <name>⚠️--bare--mirror--dissociate--quiet--verbose--progress--no-checkout--no-hardlinks--local--no-local--shared--reference <repository>⚠️--reference-if-able <repository>⚠️
git add
Ajoute des fichiers à l'index (staging area)
--all-A--update-u--patch-p--interactive-i--edit-e--force⚠️-f⚠️--ignore-removal⚠️--no-all--intent-to-add-N--refresh⚠️--ignore-errors--renormalize⚠️--chmod=(+|-)x⚠️--dry-run⚠️-n--verbose-v
git status
Affiche l'état du working directory et de la staging area
--short-s--branch-b--porcelain--long--verbose-v--untracked-files⚠️-u--ignore-submodules--ignored-z--column--no-column--ahead-behind--renames⚠️--find-renames⚠️
git commit
Enregistre les modifications dans l'historique
--message <msg>⚠️-m <msg>⚠️--all-a--patch-p--interactive--amend--no-edit--no-verify⚠️-n--allow-empty⚠️--allow-empty-message⚠️--cleanup=<mode>⚠️--date=<date>⚠️--author=<author>⚠️--signoff-s--no-signoff--gpg-sign-S--no-gpg-sign--quiet-q--verbose-v--dry-run⚠️--status--no-status--include-i--only-o--template=<file>⚠️-t <file>⚠️--file <file>⚠️-F <file>⚠️--reedit-message⚠️-c--reuse-message⚠️-C--reset-author⚠️--fixup=<commit>⚠️--squash=<commit>⚠️
git push
Envoie les commits locaux vers un dépôt distant
--all--branches--tags--follow-tags⚠️--dry-run⚠️-n--delete-d--mirror--prune--no-verify⚠️--force⚠️-f⚠️--force-with-lease⚠️--repo <repository>⚠️--set-upstream-u--push-option <string>⚠️-o <string>⚠️--receive-pack <git-receive-pack>⚠️--exec <git-receive-pack>⚠️--atomic--no-thin--progress--porcelain--quiet-q--verbose-v
git pull
Récupère les changements distants et les fusionne
--quiet-q--verbose-v--rebase⚠️-r⚠️--no-rebase⚠️--commit--no-commit--edit-e--no-edit--ff⚠️--no-ff⚠️--ff-only⚠️--squash--no-squash--strategy <strategy>⚠️-s <strategy>⚠️--strategy-option <option>⚠️-X <option>⚠️--verify-signatures--no-verify-signatures⚠️--all--append--upload-pack <path>⚠️--progress--depth <depth>⚠️--shallow-since <date>⚠️--shallow-exclude <revision>⚠️--deepen <depth>⚠️--unshallow--update-shallow--refmap <refspec>⚠️--tags--no-tags--recurse-submodules⚠️--jobs <n>⚠️-j <n>⚠️--set-upstream--dry-run⚠️--autostash--no-autostash--allow-unrelated-histories
git fetch
Récupère les objets et références d'un dépôt distant
--all--append-a--depth <depth>⚠️--deepen <depth>⚠️--shallow-since <date>⚠️--shallow-exclude <revision>⚠️--unshallow--update-shallow--dry-run⚠️--force⚠️-f⚠️--keep--multiple--no-auto-gc--no-tags-n--no-write-fetch-head⚠️--prune-p--prune-tags-P--progress--quiet-q--refmap <refspec>⚠️--tags-t--recurse-submodules⚠️--jobs <n>⚠️-j <n>⚠️--set-upstream--upload-pack <path>⚠️--verbose-v
git branch
Liste, crée ou supprime des branches
--all-a--remotes⚠️-r⚠️--list-l--verbose-v-vv--quiet-q--track-t--no-track--set-upstream-to <upstream>⚠️-u <upstream>⚠️--unset-upstream--contains <commit>⚠️--no-contains <commit>⚠️--merged <commit>⚠️--no-merged <commit>⚠️--delete-d--force⚠️-D--move-m--copy-c--color--no-color--column--no-column--sort <key>⚠️--points-at <object>⚠️--format <format>⚠️--show-current--edit-description--recurse-submodules⚠️
git checkout
Change de branche ou restaure des fichiers
--quiet-q--force⚠️-f⚠️--ours--theirs--conflict <style>⚠️--merge-m--patch-p--no-patch--ignore-other-worktrees--overwrite-ignore--no-overwrite-ignore--recurse-submodules⚠️--no-recurse-submodules⚠️--progress--no-progress--guess--no-guess--detach--orphan <new_branch>⚠️--track-t--no-track--ignore-skip-worktree-bits-b <new_branch>⚠️-B <new_branch>⚠️--ours--theirs----patch-p
git switch
Change de branche (alternative moderne à checkout)
--create <branch>⚠️-c <branch>⚠️--force-create <branch>⚠️-C <branch>⚠️--detach-d--guess--no-guess--force⚠️-f⚠️--discard-changes--merge-m--conflict <style>⚠️--quiet-q--progress--no-progress--track-t--no-track--orphan <new_branch>⚠️--ignore-other-worktrees--recurse-submodules⚠️--no-recurse-submodules⚠️
git merge
Fusionne une branche dans la branche courante
--commit--no-commit--edit-e--no-edit--cleanup <mode>⚠️--ff⚠️--no-ff⚠️--ff-only⚠️--log--no-log--signoff--no-signoff--stat-n--no-stat--squash--no-squash--quiet-q--verbose-v--progress--no-progress--verify-signatures--no-verify-signatures⚠️--summary--no-summary--strategy <strategy>⚠️-s <strategy>⚠️--strategy-option <option>⚠️-X <option>⚠️--abort--continue--quit--allow-unrelated-histories--no-allow-unrelated-histories--rerere-autoupdate⚠️--no-rerere-autoupdate⚠️--autostash--no-autostash--into-name <branch>⚠️
git rebase
Rejoue les commits d'une branche sur une autre
--interactive-i--keep-empty--no-keep-empty--rebase-merges⚠️-r⚠️--preserve-merges-p--empty <mode>⚠️--autosquash--no-autosquash--autostash--no-autostash--committer-date-is-author-date--ignore-date--ignore-whitespace--whitespace <option>⚠️--force-rebase⚠️-f⚠️--no-ff⚠️--onto <newbase>⚠️--continue--skip--abort--quit--edit-todo--show-current-patch--root⚠️--exec <cmd>⚠️-x <cmd>⚠️--strategy <strategy>⚠️-s <strategy>⚠️--strategy-option <option>⚠️-X <option>⚠️--stat-n--no-stat--verify--no-verify⚠️--rerere-autoupdate⚠️--no-rerere-autoupdate⚠️--reschedule-failed-exec⚠️--no-reschedule-failed-exec⚠️
git stash
Met de côté les modifications non commitées
pushsavelistshowapplypopdropclearbranchcreatestore--patch-p--staged-S--quiet-q--no-keep-index-k--keep-index--include-untracked-u--all-a--message <message>⚠️-m <message>⚠️--index
git reset
Annule des commits ou des modifications
--soft--mixed--hard--merge--keep--quiet-q--no-refresh⚠️--recurse-submodules⚠️--no-recurse-submodules⚠️--patch-p--intent-to-add-N
git restore
Restaure des fichiers du working tree
--source <tree>⚠️-s <tree>⚠️--patch-p--worktree-W--staged-S--quiet-q--progress--no-progress--ours--theirs--merge--conflict <style>⚠️--ignore-unmerged--ignore-skip-worktree-bits--recurse-submodules⚠️--no-recurse-submodules⚠️--overlay--no-overlay
git revert
Annule un commit en créant un nouveau commit inverse
--edit-e--no-edit--cleanup <mode>⚠️--no-commit-n--signoff-s--no-signoff--strategy <strategy>⚠️-s <strategy>⚠️--strategy-option <option>⚠️-X <option>⚠️--mainline <number>⚠️-m <number>⚠️--rerere-autoupdate⚠️--no-rerere-autoupdate⚠️--continue--skip--quit--abort
git cherry-pick
Applique un commit spécifique sur la branche courante
--edit-e--no-commit-n--signoff-s--no-signoff--ff⚠️--allow-empty⚠️--allow-empty-message⚠️--keep-redundant-commits⚠️--strategy <strategy>⚠️-s <strategy>⚠️--strategy-option <option>⚠️-X <option>⚠️--mainline <number>⚠️-m <number>⚠️--rerere-autoupdate⚠️--no-rerere-autoupdate⚠️--continue--skip--quit--abort-x
git log
Affiche l'historique des commits
--oneline--graph--all--decorate--no-decorate--patch-p--stat--shortstat--name-only--name-status--abbrev-commit--no-abbrev-commit--relative-date⚠️--date <format>⚠️--pretty <format>⚠️--format <format>⚠️--author <pattern>⚠️--committer <pattern>⚠️--grep <pattern>⚠️--all-match--invert-grep-i--regexp-ignore-case⚠️--basic-regexp⚠️-E--extended-regexp⚠️-F⚠️--fixed-strings⚠️--perl-regexp⚠️--remove-empty⚠️--merges--no-merges--min-parents <number>⚠️--max-parents <number>⚠️--no-min-parents--no-max-parents--first-parent⚠️--not--all--branches--tags--remotes⚠️--glob <pattern>⚠️--exclude <pattern>⚠️--reflog⚠️--single-worktree--since <date>⚠️--after <date>⚠️--until <date>⚠️--before <date>⚠️--author <pattern>⚠️--committer <pattern>⚠️--skip <number>⚠️--max-count <number>⚠️-<number>⚠️--reverse⚠️--topo-order--date-order--author-date-order--show-signature--no-show-signature--cherry-mark--cherry-pick--left-only--right-only⚠️--cherry--walk-reflogs⚠️-g--merge--boundary--simplify-by-decoration--show-pulls--full-history⚠️--dense--sparse--simplify-merges--ancestry-path
git diff
Affiche les différences entre commits, branches ou fichiers
--cached--staged--patch-p--no-patch-s--raw⚠️--patch-with-raw⚠️--numstat--shortstat--dirstat--cumulative--summary--name-only--name-status--stat--compact-summary--binary--abbrev--no-abbrev--full-index⚠️--color--no-color--word-diff--word-diff-regex⚠️--color-words--no-renames⚠️--check--full-diff⚠️--relative⚠️--ignore-submodules--src-prefix <prefix>⚠️--dst-prefix <prefix>⚠️--no-prefix--line-prefix <prefix>⚠️--output <file>⚠️--exit-code--quiet--ext-diff--no-ext-diff--textconv--no-textconv--ignore-space-at-eol--ignore-cr-at-eol--ignore-space-change-b--ignore-all-space-w--ignore-blank-lines--inter-hunk-context <lines>⚠️-U <lines>⚠️--unified <lines>⚠️-W--function-context⚠️--minimal--patience--histogram--anchored <text>⚠️--diff-algorithm <algorithm>⚠️--stat <width>⚠️--stat-name-width <width>⚠️--stat-graph-width <width>⚠️--compact-summary--find-copies⚠️--find-copies-harder⚠️-C--find-renames⚠️-M--dirstat <param>⚠️--dirstat-by-file⚠️--cumulative--ignore-matching-lines <regex>⚠️-I <regex>⚠️
git show
Affiche les détails d'un commit ou d'un objet Git
--pretty <format>⚠️--format <format>⚠️--abbrev-commit--no-abbrev-commit--oneline--patch-p--stat--shortstat--name-only--name-status--raw⚠️--word-diff--color--no-color--quiet-q--show-signature
git tag
Gère les tags (versions) du dépôt
--annotate-a--sign-s--local-user <keyid>⚠️-u <keyid>⚠️--force⚠️-f⚠️--delete-d--verify-v--list-l--contains <commit>⚠️--no-contains <commit>⚠️--merged <commit>⚠️--no-merged <commit>⚠️--points-at <object>⚠️--message <msg>⚠️-m <msg>⚠️--file <file>⚠️-F <file>⚠️--edit-e--cleanup <mode>⚠️--sort <key>⚠️--color--no-color--format <format>⚠️--column--no-column--ignore-case-i
git remote
Gère les dépôts distants
--verbose-vaddremoverm⚠️renameshowprune-p--dry-run⚠️-nupdateset-branchesget-urlset-urlset-head
git config
Configure les paramètres Git
--global--system--local--worktree--file <file>⚠️-f <file>⚠️--blob <blob-id>⚠️--list-l--name-only--replace-all⚠️--add--get--get-all--get-regexp⚠️--get-urlmatch--unset--unset-all--rename-section⚠️--remove-section⚠️--edit-e--includes--no-includes--default <value>⚠️--fixed-value⚠️--type <type>⚠️-t <type>⚠️--bool--int--bool-or-int--path--expiry-date--color--no-color--show-origin-z--null
git rm
Supprime des fichiers du working tree et de l'index
--cached--force⚠️-f⚠️--dry-run⚠️-n--quiet-q--ignore-unmatch--sparse--
git mv
Déplace ou renomme un fichier, un répertoire ou un symlink
--force⚠️-f⚠️--dry-run⚠️-n--verbose-v--
git clean
Supprime les fichiers non suivis du working tree
--dry-run⚠️-n--force⚠️-f⚠️--interactive-i--quiet-q-d--exclude <pattern>⚠️-e <pattern>⚠️-x-X
git blame
Affiche qui a modifié chaque ligne d'un fichier
--root⚠️--show-stats--show-name--show-number--line-porcelain--incremental--contents <file>⚠️--reverse⚠️--score-debug--show-email-e--abbrev <n>⚠️-L <start>,<end>⚠️-l--minimal--porcelain--progress
git grep
Recherche un motif dans les fichiers du dépôt
--cached--no-index--untracked--no-exclude-standard--exclude-standard--recurse-submodules⚠️-i--ignore-case--invert-match-v-E--extended-regexp⚠️-F⚠️--fixed-strings⚠️-P--perl-regexp⚠️--line-number-n--column--color--no-color--break--heading--full-name⚠️-w--word-regexp⚠️-c--count--files-with-matches⚠️-l--files-without-match⚠️-L--null-z--only-matching-o-q--quiet----and--or--not--all-match
git reflog
Affiche l'historique des références (HEAD, branches)
--all--single-worktree--date <format>⚠️--pretty <format>⚠️--relative-date⚠️--stale-fix⚠️--expire <time>⚠️--expire-unreachable <time>⚠️--updateref--rewrite⚠️--dry-run⚠️--verbose-v
git bisect
Recherche le commit qui a introduit un bug par dichotomie
startbadgoodnewoldtermsskipresetvisualizereplaylogrun
git submodule
Gère les sous-modules Git
addstatusinitdeinitupdateset-branchset-urlsummary⚠️foreachsyncabsorbgitdirs--quiet-q--recursive⚠️--remote⚠️-f⚠️--force⚠️--checkout--merge--rebase⚠️--reference <repository>⚠️--depth <depth>⚠️--jobs <n>⚠️-j <n>⚠️
git worktree
Gère plusieurs working trees attachés au même dépôt
addlistlockmovepruneremoverepairunlock--force⚠️-f⚠️--detach--checkout--no-checkout--lock--track-b <new-branch>⚠️-B <new-branch>⚠️--expire <time>⚠️--verbose-v--dry-run⚠️-n
git archive
Crée une archive des fichiers d'un arbre nommé
--format <fmt>⚠️--prefix <prefix>⚠️--output <file>⚠️-o <file>⚠️--worktree-attributes--remote <repo>⚠️--exec <command>⚠️--list-l--verbose-v
git bundle
Déplace des objets et références via une archive
createverifylist-headsunbundle--progress--all-progress--all-progress-implied--version--quiet-q--verbose-v
git gc
Nettoie les fichiers inutiles et optimise le dépôt local
--aggressive--auto--no-prune--prune <date>⚠️--quiet-q--force⚠️-f⚠️--keep-largest-pack
git fsck
Vérifie l'intégrité de la base de données Git
--unreachable--dangling--tags--root⚠️--cache--no-reflogs⚠️--full⚠️--connectivity-only--strict--verbose-v--lost-found⚠️--name-objects--progress--no-progress
git prune
Supprime les objets inaccessibles de la base de données
--dry-run⚠️-n--verbose-v--progress--expire <time>⚠️
git repack
Réorganise les objets dans des packs
-a-A-d-f⚠️-F⚠️-l-n-q-b--window <n>⚠️--depth <n>⚠️--threads <n>⚠️--max-pack-size <n>⚠️--keep-pack <name>⚠️--write-bitmap-index--no-write-bitmap-index
git shortlog
Résume la sortie de 'git log'
--numbered-n--summary-s--email-e--format <format>⚠️-c--committer-w--
git describe
Donne un nom lisible à un commit basé sur le tag le plus proche
--dirty--broken--all--tags--contains--abbrev <n>⚠️--candidates <n>⚠️--exact-match--debug--long--match <pattern>⚠️--exclude <pattern>⚠️--always--first-parent⚠️
git rev-parse
Analyse les révisions Git
--parseopt--sq-quote--revs-only⚠️--no-revs⚠️--flags⚠️--no-flags⚠️--default <arg>⚠️--prefix <arg>⚠️--verify--quiet-q--sq--not--abbrev-ref⚠️--short--symbolic--symbolic-full-name⚠️--all--branches--tags--remotes⚠️--glob <pattern>⚠️--exclude <pattern>⚠️--disambiguate <prefix>⚠️--since <date>⚠️--after <date>⚠️--until <date>⚠️--before <date>⚠️--show-toplevel--show-superproject-working-tree--show-prefix--git-path <path>⚠️--absolute-git-dir--git-common-dir--git-dir--is-bare-repository⚠️--is-shallow-repository⚠️--is-inside-git-dir--is-inside-work-tree--is-working-tree--show-cdup--local-env-vars
git ls-files
Affiche les informations sur les fichiers dans l'index
--cached-c--deleted-d--modified-m--others-o--ignored-i--stage-s--directory--no-empty-directory--unmerged-u--killed-k--exclude <pattern>⚠️-x <pattern>⚠️--exclude-from <file>⚠️-X <file>⚠️--exclude-per-directory <file>⚠️--exclude-standard--error-unmatch--with-tree <treeish>⚠️--full-name⚠️--recurse-submodules⚠️--abbrev <n>⚠️--format <format>⚠️--debug--eol-z--sparse
git ls-remote
Liste les références d'un dépôt distant
--heads-h--tags-t--refs⚠️--quiet-q--upload-pack <exec>⚠️--exit-code--get-url--sort <key>⚠️--symref
git ls-tree
Liste le contenu d'un objet arbre
--long-l--name-only--name-status--object-only--abbrev <n>⚠️--full-name⚠️--full-tree⚠️--recurse⚠️-r⚠️-t-d--format <format>⚠️
git mergetool
Lance un outil de résolution de conflits de merge
--tool <tool>⚠️-t <tool>⚠️--tool-help--no-prompt-y--prompt--no-gui-g--gui
git difftool
Affiche les différences avec un outil externe
--dir-diff-d--tool <tool>⚠️-t <tool>⚠️--tool-help--no-prompt-y--prompt--no-gui-g--gui--extcmd <command>⚠️--no-index--cached--staged
git range-diff
Compare deux plages de commits
--creation-factor <percent>⚠️--no-dual-color--dual-color--left-only--right-only⚠️--notes--no-notes
git notes
Ajoute ou inspecte des notes sur les objets
listaddcopyappendeditshowmergeremovepruneget-ref⚠️--ref <ref>⚠️--force⚠️-f⚠️--message <msg>⚠️-m <msg>⚠️--file <file>⚠️-F <file>⚠️--allow-empty⚠️--dry-run⚠️-n--verbose-v--stdin--abort--commit-c-C <object>⚠️--reuse-message <object>⚠️--reedit-message <object>⚠️--strategy <strategy>⚠️-s <strategy>⚠️--strategy-option <option>⚠️-X <option>⚠️--quiet-q
git replace
Crée, liste, supprime des références de remplacement d'objets
--delete-d--edit-e--graft--convert-graft-file⚠️--list-l--format <format>⚠️--raw⚠️