| edix_git(7f) | edix_git(7f) |
NOM
edix_git - Utilisation de git sous edix
DESCRIPTION
git est un logiciel de gestion de versions. Vous en trouverez la description dans la page de manuel git(1f). Ici il n'est question que introduction rapide et de ce qu'il y a de spécifique dans la façon d'utiliser git pour les travaux pratiques.
LES SERVEURS
Nous utilisons deux serveurs git, c'est à dire des serveurs qui accueillent nos projets et permettent à tous les auteurs/utilisateurs d'y accéder depuis leurs différentes machines.
Le premier de ces serveurs est le serveur nastar qui est géré par le CNRS et est hébergé par le laboratoire LAPLACE.
Le second est le serveur gitlab qui est géré par GitLab Inc et sur lequel nous n'avons donc pas la main. On préfèrera donc toujours utiliser le serveur nastar. Au stade actuel, pour des questions de sécurité, les étudiants de passage dans nos équipes ne peuvent pas utiliser nastar. Ils utilisent donc gitlab pour leurs projets. Pour cela nous avons créé un utilisateur gitlab qui s'appelle edstaretudiant.
Dans ce qui suit, on parlera donc de "projets déposés sur le nastar" et de "projets déposés sur edstaretudiant".
PREPARATION
Avant de pouvoir utiliser git avec les deux serveurs que nous venons de décrire, vous devez préparer votre environnement et notamment créer des clés ssh qui vous permettront d'accéder aux serveurs.
Déploiement de l'environnement
Si vous travaillez sur edix sous l'utilisateur etudiant, vous devez disposer d'une clé usb qui contienne l'ensemble de vos fichiers d'environnement et utiliser les shells de déploiement de cet environnement (voir edix_utilisation(8f) et edix_environnement_etudiant(8f)).
Cela se traduira notamment par le fait que le fichier /home/etudiant/.gitconfig sera un lien qui pointera vers votre clé usb. Il en ira de même pour le répertoire /home/etudiant/.ssh
Création d'une clé _ssh_
Voir la section Créer une clé ssh sur la page de manuel ssh(1f).
Création d'une clé _ssh_ pour le nastar
On suppose que vous avez créé une clé ssh pour accéder au nastar depuis votre machine actuelle. Si il s'agit de la première machine que vous connectez au nastar, vous devez envoyer la partie publique de cette clé à l'un des administrateurs du nastar. Si il s'agit d'une nouvelle machine, vous pouvez ajouter vous-même votre clé publique dans le fichier .ssh/authorized_keys de votre utilisateur sur le nastar (voir ssh(1f)).
Votre clé publique devra avoir le nom id_rsa_nastar_prenom_nom_machine.pub (pour connaitre le nom de votre machine, utilisez la commande "hostname").
Création d'une clé _ssh_ pour edstaretudiant
On suppose que vous avez créé une clé ssh pour accéder à edstaretudiant depuis votre machine et que vous avez envoyé la partie publique de cette clé à l'un des administrateurs de edstaretudiant sur gitlab.
Votre clé publique devra avoir le nom id_rsa_edstaretudiant_prenom_nom_machine.pub (pour connaitre le nom de votre machine, utilisez la commande "hostname").
Préparation de la connexion _ssh_
Vous pouvez alors préparer votre fichier de configuration de ssh, c'est à dire le fichier /home/etudiant/.ssh/config, pour ajouter les nouvelles connexions.
Pour le nastar :
Host nastar
Hostname nastar.laplace.enseeiht.fr
User lafrier
IdentityFile ~/.ssh/id_rsa_nastar_prenom_nom_machine
Pour edstaretudiant :
Host gitlab_edstaretudiant
Hostname gitlab.com
User git
IdentityFile ~/.ssh/id_rsa_edstaretudiant_prenom_nom_machine
IdentitiesOnly yes
UTILISATION
Création d'un nouveau projet
On suppose que le répertoire /home/etudiant/nouveau_projet contient les fichiers et répertoires correspondant au projet git que l'on souhaite créer. On se place alors dans ce répertoire et on crée le projet git localement avec les commandes suivantes (après git status vérifier si vous souhaitez bien ajouter tous les fichiers listés avant de faire le git add --all et sinon utiliser le fichier .gitignore pour exclure les fichiers non désirés) :
etudiant:~ $ cd /home/etudiant/nouveau_projet etudiant:~ $ vim .gitignore vim:
*~
*.jpg
*.png
*.tiff
*.jpeg
*.gif
*.aux
*.log
*.toc
Dans .gitignore, rajouter tous les fichiers ou types de fichiers que vous ne souhaitez pas suivre (notamment tous les fichiers binaires).
Ensuite :
etudiant:~ $ git init etudiant:~ $ git status etudiant:~ $ git add --all etudiant:~ $ git commit -m "Premier commit"
Déploiement du projet sur le nastar
Si on souhaite utiliser le nastar, il faut d'abord faire exister le projet sur le serveur. Il y a pour l'essentiel trois cas de figure (voir le fichier /nastar/git/README sur nastar).
Si vous souhaitez créer un projet personnel, on suppose qu'il existe un répertoire git sous votre répertoire personnel sur le nastar, c'est à dire que /nastar/nom/git existe. Alors la création se fait avec la commande suivante :
etudiant$ ssh nastar git-barepo /nastar/nom/git/nouveau_projet.git
Si vous souhaitez créer un projet commun à tous les membres de la plateforme edstar :
etudiant$ ssh nastar git-barepo -s git /nastar/git/nouveau_projet.git
Si vous souhaitez créer un projet commun à tous les membres de la plateforme edstar et que vous souhaitez de plus que le projet soit accessible en lecture seule à tous les utilisateurs possibles (via le protocole https) :
etudiant$ ssh nastar git-barepo -s git -d /nastar/git/nouveau_projet.git etudiant$ ssh nastar ln -s /nastar/git/nouveau_projet.git /nastar/www/git/nouveau_projet.git
Ensuite, dans votre projet vous définissez un remote correspondant au dépot git que vous venez de créer sur le nastar, puis vous publiez le contenu. Par exemple
etudiant$ cd /home/etudiant/nouveau_projet etudiant$ git remote add origin nastar:/nastar/nom/git/nouveau_projet.git etudiant$ git push origin master etudiant$ git branch --set-upstream-to=origin/master master
Déploiement du projet sur edstaretudiant
Si on souhaite utiliser edstaretudiant, on définit un remote correspondant à edstaretudiant, puis on publie le contenu :
etudiant$ cd /home/etudiant/nouveau_projet etudiant$ git remote add origin_edstaretudiant gitlab_edstaretudiant:edstaretudiant.edstar/nouveau_projet.git etudiant$ git push origin_edstaretudiant master etudiant$ git branch --set-upstream-to=origin_edstaretudiant/master master
Récupération d'une modification sur gitlab edstaretudiant
On cherche dans un premier temps les modifications ajoutées sur le gitlab etudiant :
git fetch
git merge origin/master
Cloner un projet
lafrier$ git clone nastar:/nastar/nom/git/nouveau_projet.git
ou
lafrier$ git clone gitlab_edstar:edstar/nouveau_projet.git
VOIR AUSSI
git(1f), edix_utilisation(8f), edix_environnement_etudiant(8f)
Enregistrement d'un cours de/pour débutant (première partie) https://www.lmd.jussieu.fr/~nvillefranque/edstar/cours-debutant-git-1-22042021.mp4
| 2026-04-27 | UNIX |