online tutorial: https://try.github.io/
http://www.atlassian.com/git/tutorials/setting-up-a-repository/git-config
Commit: Version ou snapshot d'un projet
Branche: Les commits sont affectés à des branches
Master: nom de la branche par défaut (principale)
HEAD: Curseur sur les commits = la version courante (souvent le dernier = plus récent). Le HEAD peut pointer sur une branche secondaire (autre que Master)
Origin: Repository git distant (la référence)
Staging area: Liste dans laquelle sont notés les fichiers qui feront partie du prochain commit (commande: git add)
Un repository local est un espace dans lequel on travaille.
mkdir <local-repositiory> cd nom_depot git init
ou
git init <local-repositiory>
On peut ensuite spécifier une orgine Git existante :
git remote add origin <remote-repositiory>
Le git bare est le repository de référence pour tous les utilisateurs.
C'est le repository 'origin' pour git. On ne travaille jamais directement sur l'origin.
En général on utilise un utilisateur dédié (souvent git:git) pour le repository origin. Il faut alors se connecte avec cet utilisateur pour créer le 'bare'
git init <origin-repository> --bare
On peut alors créer le repository local (pour un autre utilisateur) à partir du origin :
git clone <origin-repository> <local-repositiory>
Avantage : l'origin est déjà préconfigurée dans le .git/config
# Crée l'origin git init <origin-repository> --bare # dans le dossier local racine git remote add origin <URL> # mise à jour de l'origin git push origin master # Tous les autres utilisateurs peuvent alors se synchroniser avec l'origin git pull
Le fichier de configuration GIT peut être défini :
Il defini les paramêtre pour GIT :
[user] email = p.nom@here.org name = nom_programmeur [alias] ci = commit co = checkout st = status br = branch [log] date = "format:%Y-%m-%d %H:%M" [format] pretty = "format:%C(#666666)%ad%Creset %d %C(#aa8888 #442222)%h%Creset %C(#888888)%aN%Creset %s"
Pour créer une nouvelle version, il faut :
Ajout de fichiers dans la “staging area” (ou index) :
git add <filename>
Création d'une nouvelle version :
git commit -m “message…”
Il est possible de modifier le message après le commit:
git commit --amend
Un éditeur est alors ouvert pour modifier le dernier message
Affiche l'historique des versions (commits) :
git log
Différences entre la staging area (git add) et la version courante :
git status
Permet de comparer des versions d'un fichier:
git diff <commit 1> <commit 2> <files>
Voir les fichiers qui ont été modifiés entre deux version:
git diff --name-only <commit 1> <commit 2>
git diff --name-only HEAD@{2} HEAD
Annuler TOUTES les modifications an cours
git reset --hard
# removes staged and working directory changes
Cf. https://stackoverflow.com/questions/1090309/git-undo-all-working-dir-changes-including-new-files
Afficher la liste des fichiers d'un projet :
git ls-tree --full-tree -r HEAD
Suppression définitive d'éléments : http://dalibornasevic.com/posts/2-permanently-remove-files-and-folders-from-git-repo
Récupérer uniquement quelques fichiers :
git checkout <commit>
Normalement Git ne supprime pas de commit, donc si on est perdu :
git reflog
affiche la liste des commits.
On peut alors revenir sur un commit particulier avec :
git reset –hard <mon-commit>
https://stackoverflow.com/questions/424071/how-to-list-all-the-files-in-a-commit
If you want to get list of changed files:
git diff-tree –no-commit-id –name-only -r <commit-hash>
If you want to get list of all files in a commit, you can use
git ls-tree –name-only -r <commit-hash>
La commande git fetch va récupérer toutes les données des commits effectués sur la branche courante qui n'existent pas encore dans votre version en local. Ces données seront stockées dans le répertoire de travail local mais ne seront pas fusionnées avec votre branche locale. Si vous souhaitez fusionner ces données pour que votre branche soit à jour, vous devez utiliser ensuite la commande git merge.
La commande git pull est en fait la commande qui regroupe les commandes git fetch suivie de git merge. Cette commande télécharge les données des commits qui n'ont pas encore été récupérées dans votre branche locale puis fusionne ensuite ces données.
#-------------------------------------------------------------- # Configuration de Git #-------------------------------------------------------------- hal:/data/Test-Git $ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [branch "master"] remote = /bkp/GITs/Test-Git merge = refs/heads/master [remote "origin"] url = /bkp/GITs/Test-Git/ fetch = refs/heads /*:refs/remotes/origin*/ push = master fetch = master #-------------------------------------------------------------- # Création du dossier de travail avec initialisation Git #-------------------------------------------------------------- hal:/data $ git init Test-Git Initialized empty Git repository in /media/data/Test-Git/.git/ #-------------------------------------------------------------- # Création du dossier de référence avec initialisation Git --bare #-------------------------------------------------------------- hal:/data $ cd /bkp/GITs/ hal:/bkp/GITs $ git init Test-Git --bare Initialized empty Git repository in /media/bkp/GITs/Test-Git/ hal:/bkp/GITs $ cd - /media/data hal:/data $ cd Test-Git/ hal:/data/Test-Git $ echo "v1" > test.txt hal:/data/Test-Git $ ll total 8 drwxr-xr-x 7 roge roge 4096 Nov 9 09:08 .git -rw-r--r-- 1 roge roge 3 Nov 9 09:10 test.txt #-------------------------------------------------------------- # Status #-------------------------------------------------------------- hal:/data/Test-Git $ git status On branch master Initial commit Untracked files: (use "git add < file>..." to include in what will be committed) test.txt nothing added to commit but untracked files present (use "git add" to track) #-------------------------------------------------------------- # Ajout dans Git #-------------------------------------------------------------- hal:/data/Test-Git $ git add * hal:/data/Test-Git $ git status On branch master Initial commit Changes to be committed: (use "git rm --cached < file>..." to unstage) new file: test.txt #-------------------------------------------------------------- # Commit #-------------------------------------------------------------- hal:/data/Test-Git $ git commit -m "v1" [master (root-commit) 95defef] v1 1 file changed, 1 insertion( ) create mode 100644 test.txt # Vérification hal:/data/Test-Git $ git log 2016-11-09 12:38 (HEAD -> master) dd4b48d roge v1.1 2016-11-09 09:10 95defef roge v1 #-------------------------------------------------------------- # Mise à jour du repository de reference #-------------------------------------------------------------- hal:/data/Test-Git $ git push /bkp/GITs/Test-Git/ master Counting objects: 3, done. Writing objects: 100% (3/3), 197 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To /bkp/GITs/Test-Git/ * [new branch] master -> master # Vérification hal:/data/Test-Git $ cd /bkp/GITs/Test-Git/ hal:/bkp/GITs/Test-Git $ git log 2016-11-09 12:38 (HEAD -> master) dd4b48d roge v1.1 2016-11-09 09:10 95defef roge v1 #-------------------------------------------------------------- # Modification du fichier et commit #-------------------------------------------------------------- hal:/data/Test-Git $ echo "v1.1" > test.txt hal:/data/Test-Git $ git status On branch master Changes not staged for commit: (use "git add < file>..." to update what will be committed) (use "git checkout -- < file>..." to discard changes in working directory) modified: test.txt no changes added to commit (use "git add" and/or "git commit -a") hal:/data/Test-Git $ git add * hal:/data/Test-Git $ git commit -m "v1.1" [master dd4b48d] v1.1 1 file changed, 1 insertion( ), 1 deletion(-) hal:/data/Test-Git $ git push /bkp/GITs/Test-Git/ master Counting objects: 3, done. Writing objects: 100% (3/3), 228 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To /bkp/GITs/Test-Git/ 95defef..dd4b48d master -> master hal:/data/Test-Git $ git log 2016-11-09 12:38 (HEAD -> master) dd4b48d roge v1.1 2016-11-09 09:10 95defef roge v1 #-------------------------------------------------------------- # 3ième modification du fichier #-------------------------------------------------------------- hal:/data/Test-Git $ echo "V1.2" > test.txt hal:/data/Test-Git $ git add * hal:/data/Test-Git $ git commit -m "V1.2" [master f9239f9] V1.2 1 file changed, 1 insertion( ), 1 deletion(-) hal:/data/Test-Git $ git push --set-upstream /bkp/GITs/Test-Git master Counting objects: 3, done. Writing objects: 100% (3/3), 230 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To /bkp/GITs/Test-Git dd4b48d..f9239f9 master -> master Branch master set up to track remote branch master from /bkp/GITs/Test-Git. #-------------------------------------------------------------- # Création d'une branche #-------------------------------------------------------------- hal:/data/Test-Git $ git checkout -b new-feature master Switched to a new branch 'new-feature' #-------------------------------------------------------------- # Création de changements #-------------------------------------------------------------- hal:/data/Test-Git $ echo "V1.3.0" > test.txt hal:/data/Test-Git $ git add * hal:/data/Test-Git $ git commit -m "start new feature" [new-feature f37b89e] start new feature 1 file changed, 1 insertion( ), 1 deletion(-) hal:/data/Test-Git $ echo "V1.3.1" > test.txt hal:/data/Test-Git $ git add * hal:/data/Test-Git $ git commit -m "End new feature" [new-feature 06f6e84] End new feature 1 file changed, 1 insertion( ), 1 deletion(-) hal:/data/Test-Git $ git log 2016-11-09 13:15 (HEAD -> new-feature) 06f6e84 roge End new feature 2016-11-09 13:14 f37b89e roge start new feature 2016-11-09 13:02 (master) 58f89b5 roge V1.2.2 2016-11-09 13:02 71f0700 roge V1.2.1 2016-11-09 12:56 (test-feature) f9239f9 roge V1.2 2016-11-09 12:38 dd4b48d roge v1.1 2016-11-09 09:10 95defef roge v1 #-------------------------------------------------------------- # Merge: test-feature --> master #-------------------------------------------------------------- hal:/data/Test-Git $ git checkout master Switched to branch 'master' hal:/data/Test-Git $ git merge new-feature Updating 58f89b5..06f6e84 Fast-forward test.txt | 2 - 1 file changed, 1 insertion( ), 1 deletion(-) # Suppression de la branche hal:/data/Test-Git $ git branch -d new-feature Deleted branch new-feature (was 06f6e84). hal:/data/Test-Git $ git log 2016-11-09 13:15 (HEAD -> master) 06f6e84 roge End new feature 2016-11-09 13:14 f37b89e roge start new feature 2016-11-09 13:02 58f89b5 roge V1.2.2 2016-11-09 13:02 71f0700 roge V1.2.1 2016-11-09 12:56 (test-feature) f9239f9 roge V1.2 2016-11-09 12:38 dd4b48d roge v1.1 2016-11-09 09:10 95defef roge v1 #-------------------------------------------------------------- # Mise à jour du repository de reference #-------------------------------------------------------------- hal:/data/Test-Git $ git push /bkp/GITs/Test-Git/ master Counting objects: 12, done. Delta compression using up to 8 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (12/12), 852 bytes | 0 bytes/s, done. Total 12 (delta 0), reused 0 (delta 0) To /bkp/GITs/Test-Git/ f9239f9..06f6e84 master -> master # Vérification 2016-11-09 13:15 (HEAD -> master) 06f6e84 roge End new feature 2016-11-09 13:14 f37b89e roge start new feature 2016-11-09 13:02 58f89b5 roge V1.2.2 2016-11-09 13:02 71f0700 roge V1.2.1 2016-11-09 12:56 f9239f9 roge V1.2 2016-11-09 12:38 dd4b48d roge v1.1 2016-11-09 09:10 95defef roge v1
Les tag permettent de marquer des commits particuliers pour signaler des versions par exemple.
ajouter un tag :
git tag version-1.0 <commitId>
La clé <commitId> est fournie par la commande git log
Afficher les liste des tags :
git tag -l
Pousser tous les tag sur Origin:
git push --tags
Modifier un tag existant: [https://stackoverflow.com/questions/1028649/how-do-you-rename-a-git-tag]
git tag new old
git tag -d old
git push origin :refs/tags/old
git push –tags
git push mets à jour un repository autre :
git push <chemin repository>
ou
git push --set-upstream <chemin repository> master
https://git-scm.com/book/fr/v1/Git-sur-le-serveur
On crée un user git groupe git qui sera propriétaire des projets sur le repository distant.
sudo groupadd git sudo useradd -g git git sudo -i passwd git
Dans le fichier .git/config des utilisateurs on aura :
[remote "origin"] url = git@< server>:/anywhere/GITs/< project>.git fetch = +refs/heads/*:refs/remotes/origin/* push = master fetch = master
Les 'commiters' devront être dans le groupe git afin d'avoir les droits de 'push'.
sudo usermod -a -G git <user>
https://www.atlassian.com/git/tutorials/using-branches/git-branch
Liste des branches existantes :
git branch
Créer une nouvelle branche :
git branch <new-feature>
Utiliser la nouvelle branche :
git checkout <new-feature>
Les deux en un (Créer une branche et l'utiliser) :
git checkout -b <new-branch>
Ajout de modifications :
git add <file>
git commit -m “Started work on a new feature”
… plusieurs fois …
Pour les workflow en “branche” (Feature Branch Workflow). Les développers ne travaillent que sur des branches. On ne merge pas immédiatement les branches sur le master
Ce workflow est utilisé pour l'intégration continue.
Avant de merger :
git checkout master
Effectuer le merge de la branche new-feature créée précédemment:
git merge <new-feature>
Correction de conflits éventuels …
git add …. git commit …
Mettre à jour l'origine en sans conserver la branche :
git push origin master
Mettre à jour l'origine en y conservant la branche (option: -u) :
git push -u origin master
A la fin on peut merger la branche sur origin :
git checkout master git pull git pull origin <new-feature> git push
Pour les workflows “centralisés”. Garantir que le master de l'origin est toujours à jour et cohérent. Les développements se font dans des branches dédiées en local et que c'est OK on envoi sur le master de l'origin.
Avant de merger :
git pull --rebase origin master
Les conflits éventuels sont signalés.
git status
Après correction de conflits :
git rebase --continue
Si on veut arreter “rebase” en cours :
git rebase --abort
Mettre à jour l'origine:
git push origin master
git stash permet de mettre de coté un état local (sorte de commit local uniquement).
hal:/data/test2 $ echo "Test stash..." > test.txt hal:/data/test2 $ git status On branch master Your branch is ahead of 'origin/master' by 2 commits. (use "git push" to publish your local commits) Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: test.txt no changes added to commit (use "git add" and/or "git commit -a") hal:/data/test2 $ git stash Saved working directory and index state WIP on master: a4fcdc4 Bla bla ..2 .. HEAD is now at a4fcdc4 Bla bla ..2 .. hal:/data/test2 $ git status On branch master Your branch is ahead of 'origin/master' by 2 commits. (use "git push" to publish your local commits) nothing to commit, working directory clean
Pour récupérer le contenu du “stash” :
hal:/data/test2 $ git stash pop On branch master Your branch is ahead of 'origin/master' by 2 commits. (use "git push" to publish your local commits) Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: test.txt no changes added to commit (use "git add" and/or "git commit -a") Dropped refs/stash@{0} (97b2a8477f7eac602cec04d3191cac3b2b247bdb)
On peut aussi empliler les stash :
hal:/data/test2 $ echo "Test stash 2..." > test.txt hal:/data/test2 $ git stash Saved working directory and index state WIP on master: a4fcdc4 Bla bla ..2 .. HEAD is now at a4fcdc4 Bla bla ..2 .. hal:/data/test2 $ echo "Test stash 3..." > test.txt hal:/data/test2 $ git stash Saved working directory and index state WIP on master: a4fcdc4 Bla bla ..2 .. HEAD is now at a4fcdc4 Bla bla ..2 .. hal:/data/test2 $ git stash list stash@{0}: WIP on master: a4fcdc4 Bla bla ..2 .. stash@{1}: WIP on master: a4fcdc4 Bla bla ..2 .. hal:/data/test2 $ # A la fin on peut supprimer les stashs : hal:/data/test2 $ git stash drop stash@{1} Dropped stash@{1} (18d40066b10557b8551ac28b7f96c2d1ceb8b23d) hal:/data/test2 $ git stash drop stash@{0} Dropped stash@{0} (9d7208791ae7de2a2af1ba0a79532008ac128786)
Afficher la liste des fichiers d'un projet :
git ls-tree --full-tree -r HEAD
Suppression définitive d'éléments :
http://dalibornasevic.com/posts/2-permanently-remove-files-and-folders-from-git-repo
Récupérer uniquement quelques fichiers :
git checkout <commit> <file>
Normalement Git ne supprime pas de commit, donc si on est perdu :
git reflog
affiche la liste des commits.
On peut alors revenir sur un commit particulier avec :
git reset --hard <mon-commit>
https://stackoverflow.com/questions/424071/how-to-list-all-the-files-in-a-commit
If you want to get list of changed files:
git diff-tree --no-commit-id --name-only -r <commit-hash>
If you want to get list of all files in a commit, you can use
git ls-tree --name-only -r <commit-hash>
#-------------------------------------------------------------- # Configuration de Git #-------------------------------------------------------------- hal:/data/Test-Git $ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [branch "master"] remote = /bkp/GITs/Test-Git merge = refs/heads/master [remote "origin"] url = /bkp/GITs/Test-Git/ fetch = +refs/heads/*:refs/remotes/origin/* push = master fetch = master #-------------------------------------------------------------- # Création du dossier de travail avec initialisation Git #-------------------------------------------------------------- hal:/data $ git init Test-Git Initialized empty Git repository in /media/data/Test-Git/.git/ #-------------------------------------------------------------- # Création du dossier de référence avec initialisation Git --bare #-------------------------------------------------------------- hal:/data $ cd /bkp/GITs/ hal:/bkp/GITs $ git init Test-Git --bare Initialized empty Git repository in /media/bkp/GITs/Test-Git/ hal:/bkp/GITs $ cd - /media/data hal:/data $ cd Test-Git/ hal:/data/Test-Git $ echo "v1" > test.txt hal:/data/Test-Git $ ll total 8 drwxr-xr-x 7 roge roge 4096 Nov 9 09:08 .git -rw-r--r-- 1 roge roge 3 Nov 9 09:10 test.txt #-------------------------------------------------------------- # Status #-------------------------------------------------------------- hal:/data/Test-Git $ git status On branch master Initial commit Untracked files: (use "git add <file>..." to include in what will be committed) test.txt nothing added to commit but untracked files present (use "git add" to track) #-------------------------------------------------------------- # Ajout dans Git #-------------------------------------------------------------- hal:/data/Test-Git $ git add * hal:/data/Test-Git $ git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: test.txt #-------------------------------------------------------------- # Commit #-------------------------------------------------------------- hal:/data/Test-Git $ git commit -m "v1" [master (root-commit) 95defef] v1 1 file changed, 1 insertion(+) create mode 100644 test.txt # Vérification hal:/data/Test-Git $ git log 2016-11-09 12:38 (HEAD -> master) dd4b48d roge v1.1 2016-11-09 09:10 95defef roge v1 #-------------------------------------------------------------- # Mise à jour du repository de reference #-------------------------------------------------------------- hal:/data/Test-Git $ git push /bkp/GITs/Test-Git/ master Counting objects: 3, done. Writing objects: 100% (3/3), 197 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To /bkp/GITs/Test-Git/ * [new branch] master -> master # Vérification hal:/data/Test-Git $ cd /bkp/GITs/Test-Git/ hal:/bkp/GITs/Test-Git $ git log 2016-11-09 12:38 (HEAD -> master) dd4b48d roge v1.1 2016-11-09 09:10 95defef roge v1 #-------------------------------------------------------------- # Modification du fichier et commit #-------------------------------------------------------------- hal:/data/Test-Git $ echo "v1.1" > test.txt hal:/data/Test-Git $ git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: test.txt no changes added to commit (use "git add" and/or "git commit -a") hal:/data/Test-Git $ git add * hal:/data/Test-Git $ git commit -m "v1.1" [master dd4b48d] v1.1 1 file changed, 1 insertion(+), 1 deletion(-) hal:/data/Test-Git $ git push /bkp/GITs/Test-Git/ master Counting objects: 3, done. Writing objects: 100% (3/3), 228 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To /bkp/GITs/Test-Git/ 95defef..dd4b48d master -> master hal:/data/Test-Git $ git log 2016-11-09 12:38 (HEAD -> master) dd4b48d roge v1.1 2016-11-09 09:10 95defef roge v1 #-------------------------------------------------------------- # 3ième modification du fichier #-------------------------------------------------------------- hal:/data/Test-Git $ echo "V1.2" > test.txt hal:/data/Test-Git $ git add * hal:/data/Test-Git $ git commit -m "V1.2" [master f9239f9] V1.2 1 file changed, 1 insertion(+), 1 deletion(-) hal:/data/Test-Git $ git push --set-upstream /bkp/GITs/Test-Git master Counting objects: 3, done. Writing objects: 100% (3/3), 230 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To /bkp/GITs/Test-Git dd4b48d..f9239f9 master -> master Branch master set up to track remote branch master from /bkp/GITs/Test-Git. #-------------------------------------------------------------- # Création d'une branche #-------------------------------------------------------------- hal:/data/Test-Git $ git checkout -b new-feature master Switched to a new branch 'new-feature' #-------------------------------------------------------------- # Création de changements #-------------------------------------------------------------- hal:/data/Test-Git $ echo "V1.3.0" > test.txt hal:/data/Test-Git $ git add * hal:/data/Test-Git $ git commit -m "start new feature" [new-feature f37b89e] start new feature 1 file changed, 1 insertion(+), 1 deletion(-) hal:/data/Test-Git $ echo "V1.3.1" > test.txt hal:/data/Test-Git $ git add * hal:/data/Test-Git $ git commit -m "End new feature" [new-feature 06f6e84] End new feature 1 file changed, 1 insertion(+), 1 deletion(-) hal:/data/Test-Git $ git log 2016-11-09 13:15 (HEAD -> new-feature) 06f6e84 roge End new feature 2016-11-09 13:14 f37b89e roge start new feature 2016-11-09 13:02 (master) 58f89b5 roge V1.2.2 2016-11-09 13:02 71f0700 roge V1.2.1 2016-11-09 12:56 (test-feature) f9239f9 roge V1.2 2016-11-09 12:38 dd4b48d roge v1.1 2016-11-09 09:10 95defef roge v1 #-------------------------------------------------------------- # Merge: test-feature --> master #-------------------------------------------------------------- hal:/data/Test-Git $ git checkout master Switched to branch 'master' hal:/data/Test-Git $ git merge new-feature Updating 58f89b5..06f6e84 Fast-forward test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) # Suppression de la branche hal:/data/Test-Git $ git branch -d new-feature Deleted branch new-feature (was 06f6e84). hal:/data/Test-Git $ git log 2016-11-09 13:15 (HEAD -> master) 06f6e84 roge End new feature 2016-11-09 13:14 f37b89e roge start new feature 2016-11-09 13:02 58f89b5 roge V1.2.2 2016-11-09 13:02 71f0700 roge V1.2.1 2016-11-09 12:56 (test-feature) f9239f9 roge V1.2 2016-11-09 12:38 dd4b48d roge v1.1 2016-11-09 09:10 95defef roge v1 #-------------------------------------------------------------- # Mise à jour du repository de reference #-------------------------------------------------------------- hal:/data/Test-Git $ git push /bkp/GITs/Test-Git/ master Counting objects: 12, done. Delta compression using up to 8 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (12/12), 852 bytes | 0 bytes/s, done. Total 12 (delta 0), reused 0 (delta 0) To /bkp/GITs/Test-Git/ f9239f9..06f6e84 master -> master # Vérification 2016-11-09 13:15 (HEAD -> master) 06f6e84 roge End new feature 2016-11-09 13:14 f37b89e roge start new feature 2016-11-09 13:02 58f89b5 roge V1.2.2 2016-11-09 13:02 71f0700 roge V1.2.1 2016-11-09 12:56 f9239f9 roge V1.2 2016-11-09 12:38 dd4b48d roge v1.1 2016-11-09 09:10 95defef roge v1