Git TSE

Informations concernant l'utilisation du server Git de l'école, dans le cadre des projets d'électronique embarqué.

N'hésitez pas à compléter/corriger ce Wiki, en fonction de votre propre expérience.

Qu'est-ce Git ? Pour faire simple, Git est un système de gestion de version (Version Control System) pour les projets informatiques ou plus largement comportant des fichiers avec du code (C, Python, Java, LateX...). Il permet de faire du suivi de versions, du travail à plusieurs sur différentes versions d'un même projet, de fusionner les différentes branches de travail, de revenir en arrière en cas d'erreur... il est donc devenu indispensable dans les projets industriels. Pour en savoir plus

Premières étapes élémentaires [Modifier]

  • accéder à l'intranet de Télécom Saint-Etienne
  • repérer dans outil, le menu Gitlab
  • créer un nouveau projet, par le menu New project, en haut, à droite
  • choisi un projet vierge (blank project). Les projets créés à partir d'un template sont plutôt orientés développement informatique (web, base de données...) et il ne sert à rien d'importer un projet existant, dans notre cas.
  • la page suivante vous permet de choisir :

- un nom de projet

- une adresse d'accès. Cette adresse peut comporter votre nom d'utilisateur (user space) ou un nom de groupe. Il peut donc être intéressant d'avoir au préalable créer un groupe projet, avec les différents étudiants et les enseignants

- la visibilité de votre projet (icône help pour plus de précisions)

- la configuration du projet : Initialize repository with a README pour nous, car on ne va pas s'intéresser aux questions de sécurité.

Il suffit ensuite de créer le projet : Create project.

Interactions avec le server Git TSE [Modifier]

Les interactions avec votre projet Git, hébergé sur le serveur TSE peut se faire de plusieurs manières :

  • directement via l'intranet
  • à l'aide d'un logiciel installé sur votre ordinateur : GitTree, Fork, Gitkraken...Il suffit alors d'indiquer l'adresse du projet au logiciel. Vous pourrez normalement choisir le protocole de sécurité pour communiquer entre votre ordinateur (dépôt local) et le projet : https ou ssh. Il pourra alors vous être demandé la génération d'une paire de clefs : l'une privée hébergée sur votre ordinateur, l'autre publique, à communiquer au serveur. Ces clefs serviront à crypter et décrypter les données
  • en ligne de commande (Command Line Interface) sur votre ordinateur : à éviter !

Commandes Git [Modifier]

Tous les fichiers importants du projet doivent se trouver dans le répertoire local.

Le serveur Git de Télécom Saint-Etienne a été orienté vers une pratique Dev-Ops voire Dev-Sec-Ops. De nombreux onglets seront donc inutiles dans le cadre de nos projets embarqués : Build, Secure, Deploy, Operate, Monitor… les principaux onglets utiles seront donc : Manage, Plan et Code. Prenez donc le temps de les parcourir.

Les différentes commandes élémentaires Git sont résumées dans l'image ci-dessous.

Stage : enregistrer une copie de l’état actuel du projet

Unstage : permet d’annuler l’effet d'une commande stage

Commit : quand on est satisfait de l'instantané stagé, on peut effectuer un commit dans l'historique du projet. Il faut indiquer un titre et un cours descriptif du commit. Cela permet par exemple de revenir en arrière à un commit précis, afin de rechercher la cause d'une erreur.

Push : la commande git push est utilisée pour charger le contenu d'un dépôt local vers un dépôt distant (server TSE). Le push vous permet de transférer les commits de votre dépôt local vers un dépôt distant. Un push est susceptible d'écraser les changements. Vous devez donc prendre des précautions lorsque vous l'exécutez.

Fetch : la commande git fetch télécharge des commits, des fichiers et des références d'un dépôt distant vers votre dépôt local. Le fetch est l'opération à réaliser lorsque vous souhaitez voir ce sur quoi tout le monde travaille. Git isole le contenu « fetché » du contenu local existant. Cela n'a absolument aucun effet sur vos tâches de développement en local. Vous devez explicitement faire un checkout du contenu « fetché » à l'aide de la commande git checkout. Le fetch est donc un moyen sûr de réviser des commits avant de les intégrer à votre dépôt local.

Pull : la commande git pull est utilisée pour faire un fetch du contenu d'un dépôt distant et pour le télécharger, puis pour mettre à jour immédiatement le dépôt local qui correspond à ce contenu. Faire une fusion des changements en amont dans votre dépôt local est une tâche courante dans les workflows Git. La commande git pull est en fait la combinaison de deux autres commandes, git fetch suivie de git merge (fusion).

alt

Ressources utiles [Modifier]