Vous êtes sur la page 1sur 4

serveur » n'a pas besoin de working directory associé HEAD

: on parle de dépôt nu (bare repo). Pointeur sur un commit de référence à l'instant


présent, vis-à-vis duquel le stage et le working
Dépôt / Repo(sitory) Stage / Index directory sont comparés.
Base de données, généralement stockée dans le
Zone intermédiaire entre le working directory et le
dossier .git à la racine du working directory, qui
dépôt local. L'opération de commit ne prend que ce ORIG_HEAD
contient l'ensemble des objets et références utilisés
qui est dans le stage, et l'opération git add place des Pointeur sur le commit pointé précédemment par
par Git pour la gestion de sources de votre projet.
contenus dans le stage. Cette zone permet de « HEAD.
sculpter » le prochain commit, pas à pas.
Remotes
Reflog
Références vers les dépôts distants, qui servent de Stash Historique strictement local et privé des positions
points d'échange avec les autres collaborateurs.
Parfois traduit par « remise », c'est une zone annexe, successives, dans le dépôt local courant, du HEAD.
locale au dépôt, en marge de l'historique et des
Snapshot branches, une sorte de presse-papier multiple orienté Tête détachée (detached head)
Photographie instantanée d'un contenu. Git utilise Git, qui permet de mettre en suspens un travail en État dans lequel le HEAD ne référence pas une
des snapshots des fichiers qu'il versionne, et non des cours (fichiers pas encore versionnés, modifications branche par son nom : il référence directement un
difs, ce qui permet d'accélérer énormément de locales, stage) pour revenir à un état net, et de SHA1. Dans cet état, un commit reste possible mais
nombreux traitements. reprendre ces travaux ultérieurement. se retrouve isolé, faute de branche active. Survient
notamment dès qu'une opération (checkout, fusion,
SHA1 (« Chawan ») Historique / log rebase, submodule update...) se base sur un SHA1
Identifiant unique, d’un objet Git (commits, tags, etc.), Déroulé public de la séquence des commits qui plutôt qu'un nom de branche.
calculé à partir d’un algorithme de hashing (calcul constituent le dépôt au fil du temps. Affiché par
d'une valeur succincte unique à partir d'une masse défaut en ordre chronologique inverse (le plus récent Reset
quelconque de données). Le SHA1 est constitué de d'abord). En raison des branches et fusions, Déplacement explicite du HEAD et de la branche
40 caractères hexadécimaux. constitue en fait un graphe plus qu'une simple ligne courante sur un commit donné.
droite, avec plusieurs axes de travail parallèles
Commit pendant un temps. Fusion / Merge
Objet Git constitué d’un snapshot de votre code
Action de rapatrier le travail issu d'une branche dans
source au moment ou vous avez souhaitez Tag une autre.
enregistrer sa version. Le commit comporte Étiquette apposée sur un commit, pour l'identifier de
également un SHA1 et un ensemble de Métadonnés manière plus humainement compréhensible qu’un Conflit
(auteur, date, …). SHA1. N'est pas censé bouger après avoir été défini, Lors de la fusion de deux commits ou branches
contrairement aux pointes de branches, qui évoluent (fusion, cherry-pick, rebase, stash pop...), situation
WD / Working Director​y dans le temps. dans laquelle Git n'arrive pas tout seul à arbitrer la
Dossier contenant votre code source géré en version
fusion des modifications de part et d'autre sur un
par Git À sa racine, on trouve normalement le dossier
même fichier.
.git qui contient le dépôt associé. Un dépôt « côté
Rebase Créer un dépôt local vide dans le dossier courant ou Synchronise le serveur distant et le remote. Permet
Action de réécrire l'historique d'un commit, en créer un avec le nom spécifié. --bare permet de d’envoyer les modifications locales vers le remote.
généralement une branche entière, soit en la créer un dépôt sans workspace.
déplaçant (en changeant son point de base : GÉRER LES MODIFICATIONS
re-base), soit en réécrivant simplement son $ git clone [url] [nom_dépôt] Voir les changements, les sélectionner et les
historique propre (pour le nettoyer), soit les deux. Duplique en local le dépôt git pointé par l’url. Le enregistrer.
dépôt local comportera alors un remote du nom de
origin. $ git status
Donne l’état courant du workspace et dépôt local.
$ git remote -v
Outil Git + interphases graphique (git et gitk). Liste les remotes du dépôt courant. $ git checkout [fichier]
Supprime les modifications courantes du fichier.
Linux​: sudo apt-install git-all $ git remote add [remote_name] [remote_url] Attention, impossible de les récupérer après
Mac/Windows​: ​https://git-scm.com/download Ajoute un remote au dépôt courant.
$ git add​ --patch​ [fichiers]
$ git remote rm [remote_name] Ajoute les modifications d’un fichier a la zone d’index.
Supprime le remote du dépôt courant. Mode interactif avec ​--patch
CONFIGURATION
$ git remote rename [old_name] [new_name] $ git reset HEAD [fichiers]
Configurer git pour le dépôt courant ou pour tous
Renomme le remote ciblé. Enlève, de la zone d'index, les modifications mais les
avec l’option --global
conserves dans le workspace.
$ git config user.name "[nom]"
SYNCHRONISER LES CHANGEMENTS
Définit le nom de l’utilisateur Synchroniser le dépôt local et distant. En l'absence $ git diff ​--staged​ [fichier]
de remote dans la commande, c’est origin qui est Montre les modifications du fichier non indexé, pour
$ git config user.email [email] utilisé. un fichier indexé, ajouter l’option --staged.
Définit l’email de l’utilisateur
$ git fetch [remote] $ git commit ​--amend​ -m "[message]"
$ git config core.editor <editor> Met à jour le dépôt locales avec les informations du Enregistre les modifications présentes dans la zone
Définit l’éditeur de texte par défaut pour Git serveur distant mais ne les merge pas avec la d’index dans l’historique du dépôt. --amend permet
branche courante et le workspace. de modifier le commit précédent.

$ git pull [remote] [branch] $ git rm ​--cached​ [fichier]


GESTION DES DÉPÔTS
Met à jour le dépôt locales avec les informations du Supprime du suivi de git le fichier. Ce fichier est
Créer un dépôt local ou en utiliser un distant via son
serveur distant et les merge avec la branche également supprimé du WD sauf avec --cached
url.
courante et le workspace.
$ git mv [src] [dest]
$ git init ​--bare​ [nom_dépôt]
$ git push [remote] [branch] Déplace/Renomme un fichier dans le WD tout en
conservant le suivi de son historique.
GESTION DE L’HISTORIQUE Créer un nouveau commit qui est l'opposé du commit $ git rebase [autre_branche]
Visualiser et naviguer dans l’historique du dépôt Git. spécifié afin d’annuler ses effets. Déplace les commits de la branche courante sur la
branche spécifiée.
$ ​git log [-n] ​--oneline --decorate --graph --all $ git reset ​[--soft|--mixed|--hard]​ [tag|sha1|branch]
Affiche l'historique des commits depuis la position du Déplace HEAD et la tête de la branche courante. $ git cherry-pick [-x] [commit]
HEAD.. -n pour limiter aux n derniers commits. l’option par défaut est ​--mixed Applique un commit à l’espace de travail. -x permet
--oneline: ​pour limiter à une ligne par commit. -- soft:​ conserve le workspace et la zone d’index d’ajouter le message ​« cherry-picked from commit
--graph:​ pour afficher sous forme d’arbre. -- mixed:​ conserve le workspace uniquement [sha1_commit] ».
--decorate:​ pour afficher avec de la couleur. -- hard:​ ne conserve pas le workspace et l’index
--all:​ pour afficher toute les branches. $ git rebase –i [tag|sha1|branch] METTRE DE CÔTÉ DES MODIFICATIONS
Réordonne, fusionne, supprime, modifie les n dernier Mètre de côté des modifications temporairement.
$ git diff [tag|sha1] [tag|sha1] commits local. A ne pas faire sur des commit poussé
Montre les différences de contenu entre deux sur le remote. $ git stash save "[message]"
commits. Enregistre toutes les modifications courante dans
TRAVAILLER EN BRANCHE une pile temporairement.
$ git show [tag|sha1] Créer et gérer les branches en local et via les
Montre les modifications enregistrés lors du commit remotes $ git stash list
spécifié. Liste toutes modifications mises de côté.
$ git branch -u [remote/branch] [branch]
$ git checkout [tag|sha1|branche] Fait suivre une branche distante par une branche $ git stash pop id
Se déplacer dans l’historique sur le commit donné locale. Appliquer les modifications à l’index id de la pile dans
l’espace de travail. sinon id = 0
$ git tag -n $ git branch ​-r -a
Liste les tags présents dans le dépôt local. Liste toutes les branches locales dans le dépôt $ git stash drop id
courant. ​-r​ pour les branche distantes. ​-a​ pour tout Supprime les modifications à l’index id de la pile.
$ git tag ​-d​ [nom_tag] sinon id = 0.
Créer un tag sur le commit courant. L’option ​-d $ git branch [nom_branche]
permet de supprimer le tag. Crée une nouvelle branche. DEBUGER SON CODE
git branch -d [nom_branche] Outils d’aide au debug.
RÉÉCRIRE L’HISTORIQUE Supprime la branche local.
Corriger des erreurs, regrouper ou modifier des $ git blame -L [line_start],[line_stop] [file_name]
commits. $ git checkout ​-b​ [nom_branche] Affiche par qui et quand chaque lignes du fichier a
$ git commit --amend Change de branche et ce placer sur le dernier été modifié.
Modifier le commit précédent (contenue et message) commit de celle-ci. ​-b​ pour en plus créer la branche.
$ git bisect [commit_bad] [commit_good]
$ git revert [tag|sha1|branche] $ git merge [autre_branche] Recherche par dichotomie l’origine d’un bug entre
Combine dans la branche courante l'historique de la deux commits.
branche spécifiée via un commit de merge.
Formateur​: Arnaud MERCIER
Email​: ​arnaud.mercier.formation@gmail.com
Site​: ​www.codeur-pro.fr

Vous aimerez peut-être aussi