Git
Git (se prononce [ˈɡɪt]) est un système de contrôle de version (VCS : version control system) décentralisé, gratuit et open source.
Conçu pour gérer tous les projets, des plus petits aux plus grands, avec rapidité et efficacité.
C’est l’outil indispensable pour faire du travail collaboratif sur des documents numériques :
- facilité d’échange de fichiers
- traçabilité des modifications
- gestion des conflits (lorsque les mêmes lignes d’un même fichier ont été modifiées par deux collaborateurs)
Concepts
Les dépôts (repositories)
Ce sont des dossiers, cachés, contenant l’état de tous les fichiers du projet. Ils sont nommés .git
(rappel, le point devant les noms de fichier/dossier sous linux signifie qu’ils sont cachés).
- Le dépôt distant (remote repository) se trouve sur un serveur qui centralise le projet.
- Les dépôts locaux (local repository) se trouvent sur les ordinateurs de travail des membres du projet.
Les révisions (commits)
A chaque fois qu’un utilisateur « commet » un changement sur les fichiers du projet (modification, ajout, suppression, …) cette modification est enregistrée dans une révision (commit).
Remarque : git utilise un système de stockage très efficace qui permet de n’enregistrer que les modifications des fichiers et pas les fichiers entiers, ce qui économise considérablement l’espace de stockage sur le serveur.
ATTENTION : cette particularité le rend nettement plus efficace sur des fichiers texte que sur des fichiers binaires !
Copie de travail (workspace ou working copy)
Il s’agit du dossier contenant les fichiers sur lesquels travaille l’utilisateur.
Leur état peut être différent de la dernière révision de l’historique, car d’autres membres du projet peuvent avoir publié des modifications …
L’index
L’index est un espace temporaire contenant les modifications prêtes à être « commitées ».
Les principales opérations git
Plus de détails sur la CheatSheet …
Pour en savoir plus : https://perso.liris.cnrs.fr/pierre-antoine.champin/enseignement/intro-git/
Quelques commandes Git
Git dispose notamment des commandes suivantes :
git init
crée un nouveau dépôt ;git clone
clone un dépôt distant ;git add
ajoute de nouveaux objets blobs dans la base des objets pour chaque fichier modifié depuis le dernier commit. Les objets précédents restent inchangés ;git commit
intègre la somme de contrôle SHA-1 d’un objet tree et les sommes de contrôle des objets commits parents pour créer un nouvel objet commit ;git branch
liste les branches ;git merge
fusionne une branche dans une autre ;git rebase
déplace les commits de la branche courante devant les nouveaux commits d’une autre branche ;git log
affiche la liste des commits effectués sur une branche ;git push
publie les nouvelles révisions sur le remote. (La commande prend différents paramètres) ;git pull
récupère les dernières modifications distantes du projet (depuis le remote) et les fusionne dans la branche courante ;git stash
stocke de côté un état non commité afin d’effectuer d’autres tâches ;git checkout
annule les modifications effectuées, déplacement sur une référence (branche, hash) ;git switch
changement de branche ;git remote
gestion des remotes.
Installation d’un client git GUI
Il existe des client Git dédiés, comme Github Desktop
Ou bien certains IDE intègrent directement leur propre client Git, comme Visual Studio Code par exemple.
GitHub
Création d’un compte
Pour utiliser la plateforme de développement GitHub, créer un compte sur : https://github.com/
Renseigner votre adresse email :
Puis un mot de passe, et enfin un identifiant (unique !) :
Passer l’étape de vérification , puis créer votre compte :
Créer un dépôt distant
Une fois identifié sur github.com, depuis la page d’accueil (dashboard), créer un nouveau dépôt distant (repository) :
Configurer le nouveau dépôt distant :
Le dépôt distant est créé. Il contient déjà des fichiers :
.gitignore
: définit les fichiers et les dossiers qui ne doivent pas être importés (push) depuis les dépôts distants,LICENSE
: le texte de la licenceREADME.md
: le fichier au format markdown pour donner les premières informations au visiteur. Il contient ce qui apparait en dessous de la liste des fichiers !
Création d’un dépôt local
Pour créer un dépôt local sur un ordinateur, le programme Git doit y être installé et configuré.
Il faut ensuite réaliser un clonage :
- Copier l’URL du dépôt depuis le navigateur :
- Le coller dans le client Git sur l’ordinateur : VSCodium, …
GitLab
Gitlab.com 
Création d’un projet
Un projet doit être créé, par un seul membre de l’équipe :
En cas de page vide (se produit parfois…), purger le cache de Firefox, ou bien passer momentanément par le navigateur Chrome
Partager le projet avec d’autres membres
Pour travailler en collaboration, le créateur du projet doit partager le projet avec un ou plusieurs autres membres :
Applications de gestion de GIT