|
@@ -71,13 +71,13 @@ Dans l'ancien temps des années 2000, on avait un dépôt principal distant que
|
|
|
l'on synchronisait ou modifiait via des copies locales partielles (subversion,
|
|
|
CVS...) :
|
|
|
|
|
|
-<img src="concepts_depots_svn.svg" style="width:800px">
|
|
|
+<img src="concepts_depots_svn.svg" style="width:700px">
|
|
|
|
|
|
Aujourd'hui, on utilise plutôt un système de dépôts décentralisés (git,
|
|
|
mercurial...). Avec ce système, tous les dépôts sont identiques et peuvent se
|
|
|
synchroniser entre eux :
|
|
|
|
|
|
-<img src="concepts_depots_git.svg" style="width:800px">
|
|
|
+<img src="concepts_depots_git.svg" style="width:700px">
|
|
|
|
|
|
Généralement, on garde tout de même un dépôt sur un serveur distant accessible
|
|
|
en permanence (serveur gogs, github...).
|
|
@@ -101,16 +101,12 @@ sudo apt-get install git
|
|
|
|
|
|
Il existe également des clients graphiques : gitg, giggle, qgit, gitk, git-gui...
|
|
|
|
|
|
-### Installation sous Mac
|
|
|
+### Installation sous Windows ou Mac
|
|
|
|
|
|
Télécharger et installer le client [git pour
|
|
|
+Windows](http://git-scm.com/download/win) ou le client [git pour
|
|
|
Mac](http://git-scm.com/download/mac).
|
|
|
|
|
|
-### Installation sous Windows
|
|
|
-
|
|
|
-Télécharger et installer le client [git pour
|
|
|
-Windows](http://git-scm.com/download/win).
|
|
|
-
|
|
|
### Configuration
|
|
|
|
|
|
Après avoir installé le client git, il faut configurer le nom et l'adresse
|
|
@@ -118,8 +114,8 @@ e-mail de l'utilisateur (à faire une seule). Par exemple, en tapant les
|
|
|
commandes consoles :
|
|
|
|
|
|
```
|
|
|
-$ git config --global user.name "John Doe"
|
|
|
-$ git config --global user.email johndoe@example.com
|
|
|
+$ git config --global user.name "Julien Dehos"
|
|
|
+$ git config --global user.email dehos@nimpe.org
|
|
|
```
|
|
|
|
|
|
On peut également configurer l'éditeur de texte et le proxy que le client git
|
|
@@ -152,53 +148,93 @@ Voir également la section [références](#références).
|
|
|
|
|
|
### Exercice
|
|
|
|
|
|
-Installez et configurez le client git sur votre machine.
|
|
|
+Installez et configurez le client git sur votre machine. Vérifiez que votre
|
|
|
+client git peut accéder à l'extérieur, par exemple en récupérant le dépôt
|
|
|
+distant `https://github.com/juliendehos/invinoveritas` :
|
|
|
|
|
|
-* * * * *
|
|
|
+
|
|
|
|
|
|
-## Dépôt local (journaliser mon projet)
|
|
|
|
|
|
-TODO
|
|
|
+* * * * *
|
|
|
+
|
|
|
+## Dépôt local (journaliser un projet)
|
|
|
|
|
|
+L'élément de base d'un projet git est le dépôt. Il s'agit simplement d'un
|
|
|
+dossier classique que l'on demande à git de versionner.
|
|
|
|
|
|
### Initialiser un dépôt
|
|
|
|
|
|
-```
|
|
|
-$ git init
|
|
|
-Dépôt Git vide initialisé dans /home/dehos/tmp/mon_PhD/.git/
|
|
|
-```
|
|
|
+Allez dans le dossier à versionner puis lancez la commande `git clone`.
|
|
|
|
|
|
-### Voir l'état courant du dépôt
|
|
|
+
|
|
|
|
|
|
-```
|
|
|
-$ git status
|
|
|
-Sur la branche master
|
|
|
-Validation initiale
|
|
|
-rien à valider (créez/copiez des fichiers et utilisez "git add" pour les suivre)
|
|
|
+Git créé alors un dossier `.git` pour y stocker ses metadonnées. Si vous ne
|
|
|
+voulez plus versionner votre dossier, il suffit de supprimer ce dossier. Le
|
|
|
+reste du temps, ne touchez pas à ce dossier si vous n'êtes pas absolument
|
|
|
+sûr(e) de ce que vous faites.
|
|
|
|
|
|
-```
|
|
|
+### Afficher l'état d'un dépôt
|
|
|
+
|
|
|
+La commande `git status` affiche l'état courant du dépôt : nouveaux fichiers,
|
|
|
+fichiers modifiés, fichiers supprimés. Cette commande est très sûre; elle ne
|
|
|
+peut rien casser. N'hésitez donc pas à la lancer pour voir où vous en êtes.
|
|
|
+
|
|
|
+
|
|
|
|
|
|
### Ajouter/supprimer des fichiers dans le dépôt
|
|
|
|
|
|
+Il faut indiquer explicitement les fichiers que git doit journaliser.
|
|
|
|
|
|
-```
|
|
|
-$ git status
|
|
|
-Sur la branche master
|
|
|
-Validation initiale
|
|
|
-Fichiers non suivis:
|
|
|
- (utilisez "git add <fichier>..." pour inclure dans ce qui sera validé)
|
|
|
- paper.tex
|
|
|
-aucune modification ajoutée à la validation mais des fichiers non suivis sont présents (utilisez "git add" pour les suivre)
|
|
|
-```
|
|
|
+Par exemple, imaginons qu'on ouvre un nouveau fichier `rapport_01.tex` dans
|
|
|
+notre projet.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+On y écrit du code latex.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+Et on affiche l'état du dépôt.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+Git nous indique que le fichier `rapport_01.tex` existe bien dans le dossier
|
|
|
+(ainsi qu'un fichier de sauvegarde), mais qu'il ne fait pas partie du dépôt.
|
|
|
+
|
|
|
+Pour ajouter un fichier au dépôt, il faut utiliser la commande `git add`.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+Ceci indique que git doit prendre en compte le fichier lors des prochains
|
|
|
+commits (journalisation), ce qu'on peut vérifier avec un `git status`.
|
|
|
+
|
|
|
+
|
|
|
|
|
|
### Valider les modifications (commit)
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
### Afficher l'historique des commits
|
|
|
|
|
|
-log
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
### Revenir à un commit précédent
|
|
|
|
|
|
+
|
|
|
+TODO
|
|
|
+
|
|
|
### Annuler des commits
|
|
|
|
|
|
### Bonne pratique concernant la journalisation
|
|
@@ -211,7 +247,7 @@ conseil sur les fichiers générés et les fichiers de données
|
|
|
|
|
|
* * * * *
|
|
|
|
|
|
-## Dépôt distant (sauvegarder mon projet sur un serveur)
|
|
|
+## Dépôt distant (sauvegarder un projet sur un serveur)
|
|
|
|
|
|
TODO
|
|
|
|