index.md 4.2 KB


title: "Tutoriel git


introduction | installation | dépôt local | dépôt distant | branches | forks
" output:

toc: true


Introduction

À qui s'adresse ce tutoriel ?

  • Objectif du tutoriel : apprendre à utiliser l'outil git et le serveur gogs mis en place par le SCOSI.
  • Pré-requis : utilisation basique d'un ordinateur (et notamment du clavier).
  • Public visé : toute personne ayant à manipuler, journaliser ou partager des fichiers de texte brut (txt, LaTeX, python, matlab, R, java, CSV...).

Qu'est-ce-que git et gogs ?

  • git : système décentralisé de journalisation de fichiers (alternative à mercurial, subversion, CVS...)
  • gogs : service d'hébergement de fichiers 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...). Attention, les fichiers word, excel et PDF ne sont pas des fichiers au format texte et git est beaucoup moins intéressant pour manipuler ce genre de fichiers.

Quelques fonctionnalités/utilisation de git/gogs :

  • journalisation : « je modifie souvent mes fichiers et je peux revenir à mes modifications précédentes, les annuler ou en tester plusieurs en parallèle »
  • sauvegarde distante : « quand je le souhaite, l'outil envoie une copie de sauvegarde de mes fichiers sur un serveur ».
  • synchronisation : « je travaille sur plusieurs postes différents et je peux synchroniser mes fichiers facilement entre les postes ».
  • travail en équipe : « mes collègues et moi travaillons sur des fichiers communs; les modifications de chacun sont retransmises aux autres; les éventuels conflits sont détectés (quand un fichier est modifié par deux personnes en même temps) ».
  • projets publics ou privés : « je peux créer des projets publics, visibles par tout le monde sur internet (ou uniquement de l'université), et des projets privés, visibles et modifiables par les collègues que j'indique ».

Dans quels cas ne pas utiliser git/gogs ?

  • édition collaborative en temps-réel -> sharelatex
  • partage de fichiers -> dropbox, serveur FTP/HTTP...
  • fichiers dans un format non textuel (word, excel, PDF...)

Concepts de base

Notion de "version" (commit)

Un "projet git" contient l'historique de toutes les modifications de chaque fichier. On appelle "commit" un état sauvegardé de ces modifications (une version du projet en quelque sorte).

Généralement, on modifie le projet à partir de la version précédente et ansi de suite; ce qui correspond à une succession de commits :

Mais on peut également effectuer des modifications en parallèles. On appelle ça des branches :

On peut ensuite rassembler ces modifications en fusionnant les branches :

Notion de dépôt (repository)

On appelle dépôt l'ensemble des fichiers de notre "projet git", c'est-à-dire l'historique des commits.

Un dépôt peut être dupliqué sur différentes machines, pour synchroniser les données ou pour travailler en équipe.

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...) :

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 :

Généralement, on garde tout de même un dépôt sur un serveur distant accessible en permanence (serveur gogs, github...).

Références


Retour au début de la page

Retour à la page d'accueil

Dernière mise à jour : 2016-03-05