This project is maintained by juanluck
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 :
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 à :
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 :
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.
Dans la section “Accès” de la barre latérale, cliquez sur SSH and GPG keys
Cliquez sur Nouvelle clé SSH ou sur Ajouter une clé SSH
Dans le champ “Titre”, ajoutez une étiquette descriptive pour la nouvelle clé. Par exemple, si vous utilisez une machine à l’IUT, vous pouvez appeler cette clé “Machine IUT”
Collez votre clé dans le champ “Clé”
Cliquez sur “Ajouter la clé SSH”.
Si demandé, confirmez votre mot de passe GitHub.
Vous pouvez répéter ce processus pour autant de machines que vous allez utiliser.
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.
git remote
:tp1
et celui distant que nous allons créer dans github.git push
:git pull
:Ê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
affiche le résultat suivant :$:> pwd
/.../courseGIT/tp1
tp1
soit public ou privé.https://github.com/<votre_utilisateur>/tp1.git
sera affiché comme dans l’image ci-dessous.tp1
n’est pas encore lié à un dépôt distant. La réponse de cette commande ne doit rien afficher.$:~/courseGIT/tp1> git remote -v
tp1
au répertoire distant git@github.com:<votre_utilisateur>/tp1.git
pour ce faire, écrivez la commande suivante en remplaçant <votre_utilisateur>
par votre utilisateur.$:~/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
git push
essaie d’écrire dans le dépôt distant, vous devriez voir des messages similaires à :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.
https://github.com/<votre_utilisateur>/tp1
et voir les résultats. N’est-ce pas cool ?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
- 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 sequencegit 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);
}
}
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 !).
tp2
en suivant le formulaire ci-dessous :tp2
. Pour obtenir le lien pour le cloner, cliquez sur Code comme indiqué dans l’image suivante :$:~/courseGIT> ls
tp1
$:~/courseGIT> git clone git@github.com:<votre_utilisateur>/tp2.git
ls
, nous verrons qu’un nouveau répertoire tp2
a été créé. Ce répertoire contient un dépôt local qui est déjà lié et synchronisé avec le dépôt distant sur github (contrairement à la section 2., nous n’aurons pas besoin de configurer le lien avec git remote
ni avec git push -u origin master
. Si facile !.)$:~/courseGIT> ls
tp1 tp2
- Allez dans le répertoire
tp2
et mettez à jour tous les fichiers avec ceux du répertoiretp1
(README.md et src/Cryptomonnaie.java) (surtout ne copiez pas le répertoire caché .git).- En utilisant la séquence que nous avons apprise, synchronisez les dépôts local et distant.
Fin du TP 2