Avant d’utiliser Git, on se présente:
- Configurer son prénom et son nom:
git config --global user.name "PRÉNOM NOM"
- Configurer son e-mail:
git config --global user.email MON_EMAIL
- Choix de la méthode de merging par défault (évite le warning imprimé en orange après chaque
git pull
):git config --global pull.rebase false
Notes:
- L’option
--global
écrit ces éléments de configuration dans le fichier~/.gitconfig
. Cette config globale est utilisée par tous les dépôts Git de votre compte sous WSL. - Sans l’option
--global
, les réglages sont à faire depuis le dossier d’un dépôt local et la configuration sera écrite dans .git/config de ce dépôt.
Exemple pour un binôme n°1 (codename: b01) avec élève1 et élève2
- On va créer un dépôt par binôme pour le jeu
- Votre dépôt n’est crée qu’une seule fois, ensuite il sera cloné (à volonté)
- Créer ce dépôt initial ensemble (binôme, trinômes)
Choisir qui sera élève1 et qui sera élève2.
- élève1 se connecte sur Github.com
- Depuis sa page https://github.com/COMPTE_GITHUB_ÉLÈVE1, élève1 crée le dépôt Git:
- Cliquer sur “Repositories” (onglet en haut), puis sur le bouton “New” (en vert)
- Remplir “Repository name” avec un nom de dépôt de la forme:
gtech1-bXX-snake
- Cliquer sur “Add a README file”
- Cliquer sur “Create repository”
- Le dépôt est maintenant créé sur github.com
- Je suis élève2: je “fork” le dépôt Github.com de élève1 sur mon Github.com:
- Je me connecte sur Github.com
- Je vais visiter la page du compte élève1: https://github.com/COMPTE_GITHUB_ÉLÈVE1/gtech1-bXX-snake
- Je clique sur “Fork” (en haut à gauche)
J’ai maintenant un clone du dépôt de élève1 dans mon compte github.com
- Au final: Chacun doit avoir les 1 dépôt =gtech1-bXX-snake= son compte Github
- Note: Si vous avez encore votre clé SSH du projet#2, vous pouvez la réutiliser
- Créez votre paire de clés SSH au format ED25519:
(Une clé SSH permet de ne plus avoir à saisir son mot de passe à tout bout de champ!)
mkdir -p ~/.ssh && cd ~/.ssh && ssh-keygen -t ed25519 -C MON_EMAIL
IMPORTANT:
ssh-keygen
va vous poser plusieurs questions, répondez par ENTER à chaque fois.- Note: Parmi ces questions, on vous demande une “passphrase” qui est le mot de passe qui protégè votre clé privée, dans notre cas il est préférable de la laisser vide (appuyer sur ENTRÉE sans rien répondre à la question)
IMPORTANT:
- La commande ci-dessus créé une paire de fichiers (dans le dossier courant, ici ~/.ssh):
- clé publique:
~/.ssh/id_ed25519.pub
Vous pouvez la diffuser - clé privée:
~/.ssh/id_ed25519
NE JAMAIS PARTAGER VOTRE CLÉ PRIVÉE!!!
- clé publique:
- [Info: Vous pouvez avoir autant de clés SSH que nécessaire pour divers usages]
- Importer votre clé ***publique***
~/.ssh/id_ed25519.pub
sur Github.com- Sur Github.com: “settings” / “SSH & GPG keys”, cliquer sur “New SSH key” (en vert)
- Copier-coller le contenu de la clé publique:
- Pour la copier:
cat ~/.ssh/id_ed25519.pub
puis copier toute la ligne avec Ctrl+Shift+C - Pour la coller: dans Github.com, donner par exemple le nom
gtech1
à votre clé
- Pour la copier:
- Cf. la doc sur le site: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account
- Pour élève1 et élève2: je clone simplement le dépôt github.com sur ma machine @G.Tech1:
mkdir -p ~/proj7/ && cd ~/proj7/
Je clone mon dépôt Github (en mode SSH):
git clone [email protected]:MON_COMPTE_GITHUB/gtech1-bXX-snake.git snake
- Notes/Rappels:
- Dans les grandes lignes, la commande
git clone URL
fait en interne:git init
: féer un dépôt localgit pull URL main
: récupérer l’histoire distante
- La commande
git clone URL DOSSIER
créé le clone dans un nouveau sous DOSSIER.
- Dans les grandes lignes, la commande
Pour tout le monde: depuis ma machine @G.Tech1:
- Je teste pull et push entre mon dépôt local et son miroir Github.com:
cd ~/proj7/snake/; git pull ; git push
Ces commandes ne doivent pas afficher d’erreurs.
- Je rajoute un point de synchronisation avec le dépôt github.com du/des autre(s) élève(s):
- Pour chacun de mes camarades du binôme (= 1 pour les binômes, = 2 pour les trinômes):
cd ~/proj7/snake/ git remote add ALIAS_AUTRE_ELEVE URL_HTTPS_AUTRE_ELEVE
Avec:
ALIAS_AUTRE_ELEVE
: donner un nom court en miniscules pour le dépôt Github de votre camarade Il sera utilisé pour faire:git pull ALIAS_AUTRE_ELEVE main
- URL_HTTPS_AUTRE_ELEVE=: du type
https://github.com/COMPTE_AUTRE_ÉLÈVE/gtech1-bXX-snake.git
- Pour chacun de mes camarades du binôme (= 1 pour les binômes, = 2 pour les trinômes):
Pour tout le monde, depuis le PC @G.Tech1:
- Je teste pull entre mon dépôt local et le dépôt Github.com des autres élèves:
cd ~/proj7/snake/ ; git pull ALIAS_AUTRE_ELEVE main
Notes:
- Ces commandes (bien que inutiles à ce stade) ne doivent pas afficher d’erreurs.
ALIAS_AUTRE_ELEVE
a été décrit plus haut dans la section “Syncho croisée read-onlyGit ← Github
autre élève”
Une fois vos dépôts Github.com et Git locaux en place:
Complétez le Fichier Google “URL dépôts Github” avec votre URL.
Si les tests “Test 1” et “Test 2” ont fonctionné, alors vous avez mis en place ceci et votre coach vous félicite:
élève1 élève2 ====== ====== Github.com ─────── ─────── Github.com ↑ ╲ ╱ ↑ │ │ ╲ ╱ │ │ pull--│ │--push ╳ pull--│ │--push SSH │ │ SSH pull--╱ ╲--pull SSH │ │ SSH ↓ HTTPS ╱ ╲ HTTPS ↓ [email protected] <────── ──────> [email protected]
En résumé:
- J’envoie mon travail vers mon mirroir Github:
git push
- Je récupère le travail de mon/mes binôme(s):
git pull ALIAS_AUTRE_ELEVE main
- Si j’ai plusieurs machines pour travailler, j’utiliserai
git pull
sur toutes mes machines si j’ai fait auparavant ungit push
depuis une autre machineDiagrame simplifié:
machine1 <- pull,push -> Github.com <- push,pull -> machine2