Table of Contents

Gestion de versions (Hands-on Git)

Un logiciel de contrôle de version permet de conserver un historique des modifications apportées sur des fichiers tout en offrant la possibilité de revenir à une version antérieure. Il existe des logiciels de contrôle de version centralisés et décentralisés.

Dans le cadre des cours de Conception et de Méthodologie de la production d’applications, nous allons utiliser Git.

I. A chacun son projet dans gitlab

Utilisation de Gitlab

  1. Connectez-vous à https://git-iutinfo.unice.fr/ (Compte de l'université :identifiant= initiale + …)
  2. Créez un projet (un par binôme au minimum) (bouton vert à droite “new project”) , mettez le projet en public pour l'instant.
  3. Ajoutez un de vos camarades à ce projet (vous pourrez revenir sur ce point plus tard).
  4. Placez-vous bien dans le répertoire sur votre machine où vous désirez garder un lien avec le dépôt distant.
  5. Dans le terminal :
     git config --global http.sslVerify false 

    1)

  6. Exécutez en ligne de commandes et comprenez pas à pas les instructions qui vous sont données sous détails pour définir la configuration globale et créer le dépôt et ce faisant répondez aux questions suivantes :
    1. “git clone …” qu'est-ce qui a été modifié dans votre répertoire (pensez aux fichiers cachés).
    2. utilisez “git status” avant et après les instructions “git” pour expliquer ce qui change.
  7. Sur le site web, vous constatez quelles modifications ?
  8. Le fichier Readme.MD peut être modifié directement à partir du site web à présent.Pour mieux comprendre la syntaxe
  9. N'oubliez pas de commiter vos modifications.
  10. Est-ce que le contenu du fichier a été modifié sur votre machine?
  11. Exécutez la ligne de commande suivante
     git pull 

    et maintenant que contient le fichier README sur votre machine?

OK vous êtes prêts à synchroniser vos fichiers entre votre répertoire local et le dépôt distant.

II. Apprentissage de Git en lignes de commandes

Basé sur le TD élaboré par Cyril Cecchinel

Et l'aide de Open Classroom pour gérer les configurations.

Une heure maximum sur cette partie. Si besoin laissez une partie pour la faire seul plus tard.

Lignes de commandes

Voir ici pour cette partie : Il faut lire plus loin que le 1.

III. Git au travers d'un outil dédié sourceTree

Utilisation de sourceTree

  1. download
  2. installer le .exe
  3. Il vous faut un compte Bitbucket ou Atlassian mais vous pouvez vous connecter avec un compte google par exemple.
  4. Désélectionner Mercurial nous ne l'utiliserons pas.
  5. Clef SSH, vous pouvez dire non.
  6. Pour vous connecter à gitlab : clone
    1. récupérer l'adresse de votre dépôt git :
    2. la destination est celle sur votre machine, vous y retrouverez vos sources.
  7. Initialiser votre dépôt en git-flow (Flux Git en haut à droite)

- Noter que vous pouvez aussi utiliser les “repository” de projets (bouton add) lorsque vous avez plusieurs projets à gérer en parallèle (par exemple, plusieurs projets github, différents dépôts pour l'IUT, différents dépôts pour vos projets personnels ect.)

IV. Utilisation de gitflow

Attention cette partie s'appuie sur SourceTree qui doit donc être installé sur votre machine !

Gérer son projet en suivant l'approche gitflow

Cheat-Sheet

C'est juste un résumé !

antisèche sur les lignes de commandes

Création/Synchronisation

  • Création d’un repo Git local
 $ git init myRepo 
Initialized empty Git repository in /private/tmp/myRepo/.git/
  • Cloner un repo Git distant
  $git clone <URL du repo Git à cloner> 
  • Ajouter une cible (ie. Un serveur distant) – cette opération est implicite si le repo a été initialisé avec git init
$ git remote add origin <URL du repo Git>
  • Pousser les commits locaux de la branche master sur un serveur distant (origin)
 $ git push master origin
  • Se synchroniser avec un serveur distant (ie. Récupérer les commits distants)
 $ git pull

Commiter des modifications

  • Afficher l’état courant du repo local
 $ git status 
  • Versionner un nouveau fichier
 $ git add <Fichier à ajouter> 
  • Commiter un état courant avec un message de commit
 $ git commit -m "Premier commit"
[master (root-commit) b992814] Premier commit
 1 file changed, 5 insertions(+)
 create mode 100644 Menu.txt
  • Afficher l’historique du repo
 $ git log
 

Utiliser des branches

  1. Créer une branche

$ git checkout -b vegetarien Switched to a new branch 'vegetarien'

  1. Basculer sur une branche existante

$ git checkout master Switched to branch 'master'

  1. Supprimer une branche existante

$ git branch –d japonais

  1. Lister les branches existantes

$ git branch

master

* vegetarien

  1. Merger (i.e. fusionner) une branche dans la branche courante

$ git merge vegetarien

Les tags

  • Créer un tag léger
 $ git tag michelin17 
  • Lister les tags
 $ git tag
michelin17
  • Pousser un tag sur un serveur distant
 $ git push origin michelin17
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/ulrich06/TD_Git.git
  - [new tag]         michelin17 -> michelin17
  • Pousser tous les tags sur un serveur distant
 git push origin --tags 

Maintenant Je peux aborder la Intégration continue

Ressources

That’s all folks

1)
si vous n'avez pas “GIT” sur votre machine personnelle, vous pouvez passer au point III pour télécharger sourceTree qui contient Git puis suivez les instructions de Dorian sur Slack, à savoir : “Pour avoir la console Git pour ceux qui ont dl SourceTree, vous pouvez faire un raccourcis de git-bash ou git-cmd depuis C:\Users\<username>\AppData\Local\Atlassian\SourceTree\git_local”