|
@@ -9,7 +9,7 @@ output:
|
|
|
## Introduction
|
|
|
|
|
|
### À qui s'adresse ce tutoriel ?
|
|
|
-- Objectif du tutoriel : apprendre à utiliser le logiciel git et le [serveur
|
|
|
+- Objectif du tutoriel : apprendre à utiliser le système git et le [serveur
|
|
|
gogs](https://gogs.univ-littoral.fr) mis en place par le
|
|
|
[SCOSI](http://scosi.univ-littoral.fr/).
|
|
|
- Pré-requis : utilisation basique d'un ordinateur.
|
|
@@ -17,20 +17,21 @@ output:
|
|
|
java...)
|
|
|
|
|
|
### Qu'est-ce-que git et gogs ?
|
|
|
-- git : logiciel de journalisation de code source décentralisé (alternative à
|
|
|
+- git : système de journalisation de code source décentralisé (alternative à
|
|
|
mercurial, subversion, CVS...)
|
|
|
- gogs : service d'hébergement de code source utilisable avec git (alternative
|
|
|
à github, bitbucket...)
|
|
|
|
|
|
### Dans quels cas utiliser git/gogs ?
|
|
|
+git est conçu pour manipuler principalement des fichiers **au format texte**
|
|
|
+(code source, code latex, fichier CSV...). Il permet notamment :
|
|
|
+
|
|
|
- journalisation
|
|
|
- sauvegarde distante
|
|
|
- synchronisation
|
|
|
- travail en équipe
|
|
|
- projets publics ou privés :
|
|
|
|
|
|
-**-> Principalement sur des fichiers textes !!!**
|
|
|
-
|
|
|
### Dans quels cas ne pas utiliser git/gogs ?
|
|
|
- édition collaborative en temps-réel -> sharelatex
|
|
|
- partage de fichiers -> serveur ftp, http...
|
|
@@ -72,9 +73,9 @@ CVS...) :
|
|
|
|
|
|
<img src="concepts_depots_svn.svg" style="width:800px">
|
|
|
|
|
|
-Aujourd'hui, on utilise plutôt des 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 :
|
|
|
+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">
|
|
|
|
|
@@ -86,57 +87,123 @@ en permanence (serveur gogs, github...).
|
|
|
|
|
|
## Installation et configuration
|
|
|
|
|
|
-Pour utiliser git, il suffit d'avoir installé le logiciel du même nom. Pour
|
|
|
-synchroniser des dépôts avec le serveur gogs, il faudra également une
|
|
|
-connexion internet.
|
|
|
+Pour utiliser git, il vous faut une connexion internet et un client git.
|
|
|
|
|
|
### Installation sous Linux
|
|
|
|
|
|
-TODO
|
|
|
+La plupart des systèmes Linux modernes propose le client git dans leur système
|
|
|
+de paquets. Par exemple, sur les Linux basés Debian, il suffit de lancer la
|
|
|
+commande console :
|
|
|
|
|
|
```
|
|
|
sudo apt-get install git
|
|
|
```
|
|
|
|
|
|
-interface graphique
|
|
|
-qgit
|
|
|
+Il existe également des clients graphiques : gitg, giggle, qgit, gitk, git-gui...
|
|
|
|
|
|
+### Installation sous Mac
|
|
|
|
|
|
-### Installation sous Windows
|
|
|
+Télécharger et installer le client [git pour
|
|
|
+Mac](http://git-scm.com/download/mac).
|
|
|
|
|
|
-[http://git-scm.com](http://git-scm.com)
|
|
|
+### 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
|
|
|
+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
|
|
|
+```
|
|
|
+
|
|
|
+On peut également configurer l'éditeur de texte et le proxy que le client git
|
|
|
+doit utiliser. Par exemple, en tapant les commandes consoles :
|
|
|
+
|
|
|
+```
|
|
|
+$ git config --global core.editor emacs
|
|
|
+$ git config --global http.proxy http://user:pass@proxyhost:proxyport
|
|
|
+```
|
|
|
+ou alors en ajoutant des variables d'environnement (par exemple, dans le
|
|
|
+`.bashrc`):
|
|
|
+```
|
|
|
+export EDITOR=emacs
|
|
|
+export http_proxy=http://user:pass@proxyhost:proxyport
|
|
|
+```
|
|
|
+
|
|
|
+### Obtenir de l'aide
|
|
|
+
|
|
|
+Aide générale sur git :
|
|
|
```
|
|
|
-git config --global user.name <name>
|
|
|
+$ git help
|
|
|
```
|
|
|
|
|
|
+Aide sur une commande git :
|
|
|
```
|
|
|
-git config --global user.email <email>
|
|
|
+$ git help <commande git>
|
|
|
```
|
|
|
|
|
|
+Voir également la section [références](#références).
|
|
|
|
|
|
### Exercice
|
|
|
|
|
|
+Installez et configurez le client git sur votre machine.
|
|
|
+
|
|
|
* * * * *
|
|
|
|
|
|
## Dépôt local (journaliser mon projet)
|
|
|
|
|
|
+TODO
|
|
|
+
|
|
|
+
|
|
|
+### Initialiser un dépôt
|
|
|
+
|
|
|
+```
|
|
|
+$ git init
|
|
|
+Dépôt Git vide initialisé dans /home/dehos/tmp/mon_PhD/.git/
|
|
|
+```
|
|
|
+
|
|
|
+### 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)
|
|
|
+
|
|
|
+```
|
|
|
+
|
|
|
+### Ajouter/supprimer des fichiers dans le dépôt
|
|
|
+
|
|
|
+
|
|
|
+```
|
|
|
+$ 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)
|
|
|
+```
|
|
|
+
|
|
|
+### Valider les modifications (commit)
|
|
|
+
|
|
|
+### Afficher l'historique des commits
|
|
|
|
|
|
-init
|
|
|
-.git
|
|
|
-status
|
|
|
-add
|
|
|
-commit
|
|
|
log
|
|
|
-clone
|
|
|
|
|
|
-head
|
|
|
+### Revenir à un commit précédent
|
|
|
|
|
|
-.gitignore
|
|
|
+### Annuler des commits
|
|
|
|
|
|
+### Bonne pratique concernant la journalisation
|
|
|
+
|
|
|
+.gitignore
|
|
|
conseil sur les fichiers générés et les fichiers de données
|
|
|
|
|
|
|
|
@@ -146,6 +213,8 @@ conseil sur les fichiers générés et les fichiers de données
|
|
|
|
|
|
## Dépôt distant (sauvegarder mon projet sur un serveur)
|
|
|
|
|
|
+TODO
|
|
|
+
|
|
|
nouveau projet
|
|
|
|
|
|
projet existant
|
|
@@ -156,6 +225,8 @@ projet existant
|
|
|
|
|
|
## Branches (travailler en équipe)
|
|
|
|
|
|
+TODO
|
|
|
+
|
|
|
### Exercice
|
|
|
|
|
|
* * * * *
|
|
@@ -168,9 +239,8 @@ projet existant
|
|
|
|
|
|
## Références
|
|
|
|
|
|
-https://www.atlassian.com/git/tutorials/
|
|
|
-
|
|
|
-http://git-scm.com/book/en/v2
|
|
|
+- [https://www.atlassian.com/git/tutorials/](https://www.atlassian.com/git/tutorials/)
|
|
|
+- [http://git-scm.com/book/fr/v2](http://git-scm.com/book/fr/v2)
|
|
|
|
|
|
* * * * *
|
|
|
|