Cheat sheet - Git
3 min read

Cheat sheet - Git

Cheat sheet - Git

W = working zone;
S = staging zone;
C = commit zone;
B(*) = Branche *;
H(*) = Header *;

Initialisation

Configuration

$ git config --global user.email "email@domain.com"
$ git config --global user.name "Denis Brogniart"

Working zone

Demarrer un dépot GIT #W

$ git init

Cloner un dépot existant #C➜W

$ git clone [url]

Indexer des fichiers existants #W➜S

$ git add [file]
$ git add

Staging zone

Vérifier l'état du fichier #S

$ git status

Copier un fichier du dépot vers la zone de staging #C➜S

$ git reset

Visualiser les modifications non-indexés #S

$ git diff

Commit

Validation des modifications #S➜C

$ git commit -m "message de validation"

git_graph

Historique des modifications #log(C)

$ git log

commit 67d6a5214ad4b259407ec7836b9d729f9f7de731
Author: Bertrand
Date:   Fri Jul 5 10:45:50 2013 +0200

   create reminders admin module

commit 05ca141b9e982c7d04100c37300da4209305b900
Author: Bertrand
Date:   Fri Jul 5 10:29:56 2013 +0200

   Create user admin module

commit 0fb74654c708a01bfaec8d552437e9f655bd325d
Author: Thibault 
Date:   Thu Jul 4 15:46:34 2013 +0200

   upgrade pymill version

…
Visualiser un dépot spécifique #C(id)

$ git show <commit>

Marquer un etat du dépot #tag(C)

git tag <mon_tag> # ex: stable

Annuler #C(*)=C(id)

$ git revert <commit_ID>

Branch & Head

Création d'une branche #B(master)➜NEW➜B(test)

$ git branch test

Deplacer head sur une branche #H(master)➜H(test)

$ git checkout test # Déplace HEAD sur "test"

Création d'une branche et déplacement du head #Alias

$ git checkout -b test #B(master)➜NEW➜B(test)+H(master)➜H(test)

git_work_branch

Merge deux branches #H(test)➜H(master)+B(test)=B(master)

$ git checkout master #Deplacement sur branch master
$ git merge test #Deplacement du commit test vers master

git_merge

Visualiser les branches existances #B(all)

$ git branch

  • master
    test
Supprimer une branche #B(*)➜DELETE

$ git branch -d <branch>

Git checkout: details

$ git checkout <commit ou branche> # 1) Avec un identifiant de commit
$ git checkout <commit ou branche> <repertoire ou fichier > # 2) Avec un fichier / répertoire en plus
$ git checkout <repertoire ou fichier> # Équivalent à git checkout HEAD <repertoire ou branche>
$ git checkout # Équivalent à git checkout HEAD

Deplacer la référence de la branche courante #(H+C)=C(*)

$ git reset <commit id> #Plusieurs paramètres disponible, cf schéma

git_reset

Dépots

Ajout d'un dépot

$ git remote add <alias> <url> (ex: origin master)

Suppression d'un dépot

$ git remote remove <alias>

Synchroniser le dépot principal en locale

$ git fetch <alias> <branch>

Ajoute les modifications local en haut de la liste des modifications à effectuer

$ git pull
$ git pull --rebase <alias> => upload

Telecharger les modifications sur git

$ git push <alias>
$ git push <alias> <branch>

Ignorer des fichiers

il faut créer un fichiers:.gitignore

Exemple Description
*.a pas de fichier .a
!lib.a suivre lib.a malgré la règle précédente
/TODO ignorer uniquement le fichier TODO à la racine du projet
build/ ignorer tous les fichiers dans le répertoire build
doc/*.txt ignorer doc/notes.txt, mais pas doc/server/arch.txt
doc/**/*.txt ignorer tous les fichiers .txt sous le répertoire doc/
Supprimer un git

$ git rm

GIT REBASE INCOMING