Introduction-GIT

This project is maintained by juanluck

TP 2 : Travailler en autonomie sur un depôt github distant

Retour à la page principale

Jusqu’à présent (dans le TP1), nous avons travaillé sur un dépôt local. Cependant, le vrai pouvoir de git est de pouvoir travailler avec un dépôt distant (généralement hébergé sur un serveur externe), ce qui présente les avantages suivants: i) avoir une copie de sauvegarde du projet, ii) possibilité d’accéder au projet depuis différentes machines et iii) possibilité de travailler en équipe sur le même projet.

Dans ce TP, nous allons travailler de manière autonome (il n’y a toujours pas de travail d’équipe) sur un dépôt distant. Vous connaissez sûrement déjà certaines de ces plateformes de gestion de projets : il en existe plusieurs. Les plus connues :

Github :
La plateforme la plus connue. Héberge gratuitement des projets. Souscriptions pour plus de fonctionalités. Le code est hébergé chez github.
Bitbucket :
Similaire à github. Programme étudiant (avec l’email universitaire). Le code est hébergé par Atlasian.
Gitlab :
Similaire aux précédents dans sa version commerciale (Entreprise Edition). Une version open source (Community Edition) permet l’installation privée d’un serveur.

Objectifs du TP 2

Le but de ce deuxième TP est de commencer à travailler en autonomie (pas de travaille en équipe pour l’instant) avec un dépôt git distant. En particulier, nous travaillerons avec le système github. Dans ce TP, nous allons apprendre à :

  1. Créer un compte sur github
  2. Ajouter une nouvelle clé SSH à votre compte GitHub
  3. Pousser un dépôt existant depuis la ligne de commande
  4. Séquence de travail avec un dépôt distant
  5. Cloner un dépôt distant sur notre machine locale

Haut de la page


1. Créer un compte sur github

Peut-être que certains d’entre vous avez déjà un compte github. Si tel est le cas, vous pouvez ignorer cette première étape. Sinon, créer un compte sur github est simple :

  1. Vous devez aller sur github et cliquer sur sign up pour vous insrire : Signup github
  2. Ensuite, vous devez remplir les champs suivants du formulaire. Prenez quelques minutes pour créer votre compte.

Create github account


2. Ajouter une nouvelle clé SSH à votre compte GitHub

Pour des raisons de sécurité, GitHub base ses connexions sur un système de clé publique/privée. Cette section vous permet de configurer ces clés sur github.

$ cat ~/.ssh/id_rsa.pub
# Sélectionnez ensuite et copiez le contenu du fichier id_rsa.pub 
# affiché dans le terminal dans votre presse-papiers 

Attention : la clé publique est celle qui se termine par .pub, ne partagez jamais votre clé privée.

Le fichier id_rsa.pub est le nom par défaut, mais peut-être que votre fichier est nommé différemment, par exemple identifiant.pub ou autrement

Si vous n'avez pas de paire de clés publique/privée dans votre repertoire .ssh, la commande ssh-keygen permet de générer une paire de clés publique/privée rsa.

Settings

Haut de la page


3. Pousser un dépôt existant depuis la ligne de commande

Jusqu’à présent, nous avons travaillé sur le dépôt git local tp1, il est temps de sauvegarder ce dépôt sur github. Pour ce faire, nous allons suivre une description qui montre comment le faire étape par étape. Mais tout d’abord, il est pratique de faire une brève introduction de trois commandes dans git qui nous aideront à gérer notre répertoire distant à partir de notre répertoire local sur la ligne de commande.

Êtes-vous prêts ? Allons commencer à travailler avec github !! La première tâche sera de sauvegarder une copie de notre répertoire local tp1 sur github.

$:> pwd
/.../courseGIT/tp1 

New repository github

Create empty repository github

Information empty repository

$:~/courseGIT/tp1> git remote -v
$:~/courseGIT/tp1> git remote add origin git@github.com:<votre_utilisateur>/tp1.git
$:~/courseGIT/tp1> git branch
*master
$:~/courseGIT/tp1> git push -u origin master
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (19/19), 2.11 KiB | 0 bytes/s, done.
Total 19 (delta 0), reused 0 (delta 0)
To https://github.com/juanluck/tp1.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

Haut de la page


4. Séquence de travail avec un dépôt distant

Dans le tp1, nous avons vu comment établir une séquence de travail simple dans un répertoire local pour enregistrer la trace des différentes versions de notre projet à l’aide de la séquence de commandes suivant : git status -> git add fichier -> git commit -m "message" -> git status -> git add fichier -> ...

Une fois que le lien entre notre dépôt local et distant a été établi, nous allons introduire les commandes git pull et git push dans cette séquence et ainsi pouvoir synchroniser le commit local avec le dépôt distant . En bref, cette séquence se compose des commandes suivantes :

$:~/courseGIT/tp1> git pull
$:~/courseGIT/tp1> git log
$:~/courseGIT/tp1> git status
$:~/courseGIT/tp1> git add .
$:~/courseGIT/tp1> git commit -m "Message pour le log"
$:~/courseGIT/tp1> git push

Exercice

  1. Modifiez le fichier Cryptomonnaie.java avec le code ci-dessous. Pour synchroniser correctement les dépôts, commencez par faire un git pull -> git log, puis modifiez le fichier pour ensuite continuez avec la sequence git status -> git add Cryptomonnaie.java -> git commit -m" Ajout de getters et setters " - > git push. Vérifiez que le référentiel github a été mis à jour.
public class Cryptomonnaie{
    private String nom;
    private double valeurDeJeton; // Imaginons en euros

    public Cryptomonnaie(String nom, double valeurDeJeton){
        this.nom = nom;
        this.valeurDeJeton = valeurDeJeton;
    }

    public String getNom() {
        return nom;
    }

    public double getValeurDeJeton() {
        return valeurDeJeton;
    }

    @Override
    public String toString() {
        return String.format("%5s",nom) + ":" + String.format("%10.1f",valeurDeJeton);
    }
}

Haut de la page


5. Cloner un dépôt distant sur notre machine locale

Dans la section 3, nous avons appris à initialiser un dépôt localement (avec git init) et puis à le synchroniser avec un répertoire distant. Cependant, la plupart du temps, nous allons utiliser un mécanisme beaucoup plus simple pour relier les deux dépôts : le clone. Pour apprendre ce mécanisme, nous allons créer un nouveau dépôt sur github que nous appellerons tp2 (au revoir tp1 !).

NOTE : Lorsque vous aurez un peu plus d'expérience, vous verrez à quel point le clonage d'un dépôt distant est la méthode de travail la plus courante et la plus simple. Dans cet exercice, nous reproduisons ce workflow.

Create repository tp2 in github

Clone info tp2 in github

$:~/courseGIT> ls
tp1
$:~/courseGIT> git clone git@github.com:<votre_utilisateur>/tp2.git
$:~/courseGIT> ls
tp1 tp2

Exercices

  1. Allez dans le répertoire tp2 et mettez à jour tous les fichiers avec ceux du répertoire tp1 (README.md et src/Cryptomonnaie.java) (surtout ne copiez pas le répertoire caché .git).
  2. En utilisant la séquence que nous avons apprise, synchronisez les dépôts local et distant.

Haut de la page


Fin du TP 2