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"
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)
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
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
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