par François LASSERRE
Systèmes Centralisés : CVS, Subversion
Systèmes distribués : git, Mercurial, Bazaar
Pour en savoir plus voir le premier commit de git sur github :
https://github.com/git/git/tree/e83c5163316f89bfbde7d9ab23ca2e25604af290
$ git config --global user.name "François LASSERRE"
$ cat ~/.gitconfig
[user]
name = François LASSERRE
$ git config --global user.email "contact@francoislasserre.fr"
$ cat ~/.gitconfig
[user]
name = François LASSERRE
email = contact@francoislasserre.fr
$ git config --global core.editor vim
$ cat ~/.gitconfig
[user]
name = François LASSERRE
email = contact@francoislasserre.fr
[core]
editor = vim
$ git config --global alias.br branch
$ cat ~/.gitconfig
[user]
name = François LASSERRE
email = contact@francoislasserre.fr
[core]
editor = vim
[alias]
br = branch
co = checkout
$ git config --global alias.co checkout
indexé
modifié
non modifié
non indexé
Ajout du fichier dans le dépôt
$ git add README.md
$ git status
Sur la branche master
Modifications qui seront validées :
(utilisez "git reset HEAD <fichier>..." pour désindexer)
nouveau fichier : README.md
indexé
modifié
non modifié
non indexé
Ajout du fichier dans le dépôt
Commit du fichier
Add file README.md
# Veuillez saisir le message de validation pour vos modifications. Les lignes
# commençant par '#' seront ignorées, et un message vide abandonne la validation.
# Sur la branche master
# Modifications qui seront validées :
# nouveau fichier : README.md
#
$ git commit
$ git commit
[master 0d147cb] Add file README.md
1 file changed, 2 insertions(+)
create mode 100644 README.md
indexé
modifié
non modifié
non indexé
Édition du fichier
Commit du fichier
$ git status
Sur la branche master
Modifications qui ne seront pas validées :
(utilisez "git add <fichier>..." pour mettre à jour
ce qui sera validé)
(utilisez "git checkout -- <fichier>..." pour annuler
les modifications dans la copie de travail)
modifié : README.md
aucune modification n'a été ajoutée à la validation
(utilisez "git add" ou "git commit -a")
$ echo "test" >> README.md
indexé
modifié
non modifié
non indexé
Édition du fichier
Index du fichier
$ git status
Sur la branche master
Modifications qui seront validées :
(utilisez "git reset HEAD <fichier>..." pour désindexer)
modifié : README.md
$ git add README.md
$ git commit
Add text "test"
# Veuillez saisir le message de validation pour vos modifications. Les lignes
# commençant par '#' seront ignorées, et un message vide abandonne la validation.
# Sur la branche master
# Modifications qui seront validées :
# nouveau fichier : README.md
#
$ git commit
[master d8dcbdd] Add text "test"
1 file changed, 1 insertion(+)
$ git log
commit d8dcbdd1641a460aab46809bf1546606c1ab4cb3
Author: François LASSERRE <contact@francoislasserre.fr>
Date: Mon Jul 25 22:30:28 2016 +0200
Add text "test"
commit 0d147cb2c53931dd95e248eb84fa130fc609714f
Author: François LASSERRE <contact@francoislasserre.fr>
Date: Mon Jul 25 22:29:17 2016 +0200
Add file README.md
$ ls -ap
./ ../ .git/ README.md
$ git status
Sur la branche master
rien à valider, la copie de travail est propre
$ mkdir logs
$ touch logs/.gitkeep
$ git status
Sur la branche master
Fichiers non suivis:
(utilisez "git add <fichier>..." pour inclure dans ce qui sera validé)
logs/
aucune modification ajoutée à la validation mais des fichiers non suivis
sont présents (utilisez "git add" pour les suivre)
$ git add logs/
$ git status
Sur la branche master
Modifications qui seront validées :
(utilisez "git reset HEAD <fichier>..." pour désindexer)
nouveau fichier : logs/.gitkeep
$ git commit -m "Add .gitkeep file"
[master 003963f] Add .gitkeep file
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 logs/.gitkeep
$ touch logs/access.log
$ git status
Sur la branche master
Fichiers non suivis:
(utilisez "git add <fichier>..." pour inclure dans ce qui sera validé)
logs/access.log
aucune modification ajoutée à la validation mais des fichiers non suivis
sont présents (utilisez "git add" pour les suivre)
$ echo "logs/*.log" > .gitignore
$ git add .gitignore
$ git commit -m "add .gitignore file"
$ git status
Sur la branche master
rien à valider, la copie de travail est propre
$ mkdir logs/2016/
$ git status
Sur la branche master
Fichiers non suivis:
(utilisez "git add <fichier>..." pour inclure dans ce qui sera validé)
logs/2016/access.log
aucune modification ajoutée à la validation mais des fichiers non suivis
sont présents (utilisez "git add" pour les suivre)
$ echo "logs/*" >> .gitignore
$ git status
Sur la branche master
rien à valider, la copie de travail est propre
$ touch logs/2016/access.log
$ git branch mybranch
$ git branch
* master
mybranch
$ git checkout mybranch
Basculement sur la branche 'mybranch'
$ git branch
master
* mybranch
$ git checkout -b mybranch
Basculement sur la nouvelle branche 'mybranch'
Alternative
$ touch mybranch.txt
$ git add mybranch.txt
$ git commit -m "add mybranch.txt"
$ git log --decorate
commit 5dba86943e91c369a6e2665e870d82e1b448cca2 (HEAD -> mybranch)
Author: François LASSERRE <contact@francoislasserre.fr>
Date: Tue Jul 26 06:51:26 2016 +0200
add mybranch.txt
commit 003963fe03e9755bafe58897b0bc3f4e4703f4fa (master)
Author: François LASSERRE <contact@francoislasserre.fr>
Date: Tue Jul 26 06:48:22 2016 +0200
Add .gitkeep
$ git checkout master
$ git log --decorate
commit 003963fe03e9755bafe58897b0bc3f4e4703f4fa (master)
Author: François LASSERRE <contact@francoislasserre.fr>
Date: Tue Jul 26 06:48:22 2016 +0200
Add .gitkeep
$ git merge mybranch
Mise à jour 003963f..5dba869
Fast-forward
mybranch | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 mybranch.txt
$ git log --decorate
commit 5dba86943e91c369a6e2665e870d82e1b448cca2 (HEAD -> master, mybranch)
Author: François LASSERRE <contact@francoislasserre.fr>
Date: Tue Jul 26 06:51:26 2016 +0200
add mybranch.txt
commit 003963fe03e9755bafe58897b0bc3f4e4703f4fa (master)
Author: François LASSERRE <contact@francoislasserre.fr>
Date: Tue Jul 26 06:48:22 2016 +0200
Add .gitkeep