Ce TP est a l'attention des etudiants HETIC.
Dans ce workshop vous allez
- Installer Git CLI sur votre machine
- Creer une paire de clef SSH (Secure SHell)
- Creer un fork de ce repo GitHub
- Apprendre a lire de la documenation
- Ajouter, supprimer, modifier des fichiers dans un repo
- Creer et resoudre des confltits de merge
- Apprendre a resoudre les conflits
Liste non exhaustive de commandes de terminal utiles:
ls <nom_du_repertoire | nom_du_fichier>
Exemple:
❯ ls .ssh
total 104
480519 drwx------ 11 jdel staff 352B Apr 13 16:09 .
263916 drwxr-x---+ 56 jdel staff 1.8K Apr 23 14:24 ..
1018810 -rw-r--r--@ 1 jdel staff 493B Mar 9 12:44 config
7199345 -rw------- 1 jdel staff 3.3K Apr 9 17:11 id_rsa
7199346 -rw-r--r-- 1 jdel staff 736B Apr 9 17:11 id_rsa.pub
7419498 -rw------- 1 jdel staff 8.9K Apr 17 14:08 known_hosts
-
Le charactere
~signifie votre repertoire utilisateur, equivalent a la variable d'environment $HOME -
Le charactere
.dans le terminal.peut signifier le repertoire courant:ls ./quelquechose.devant un nom de repertoire en fait un repertoire cache:.ssh.comme commande est equivalente asource:. ~/.zshrc=source ~/.zshrc
cat <nom_du_fichier>
Exemple:
❯ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCi99UOjitlzX7DkXQIzb2/Om0d0f7pqY45JNiqw96uh+6zImzzE3aQ6aSPBmGk0Mqdf/NYkrjEi/iMymluhET3urAcE51fGJt2zhPL0xqztQH3jJ7XRodzuWhvNXmPNpiYF15BeD2PLGkOXUy6HuKoU21g9VKyJhJMbSdz2TJHXVHketPngYc/.....+uP7/E5cYQMd4wD0qnhscnUWapcbZKemXeNVynKCv6/i2XQVpv9Vn2iiWrdKu2vJux2KxfWySUi8JPb2crT579/rpvTa5NEvwB3LxnQv9Ol5MbnZzQkPig3XQxT0SteiBOWuFwWE5GQhEU2grKumfPNg8LlJ7JtJcs6bV1ANrfde/mkz9aEqM4+/uULv+Jdy8R56RwSEj+Qm1hylV7VZsaVw== jdel@jwork
Remonter d'un repertoire cd ..
Revenir a la racine du home cd
open <nom_du_repertoire>
code <nom_du_repertoire | nom_du_fichier>
Sur Mac, dans VSCode CMD + Shift + P puis taper SHELL.
Selectionner "Install 'code' in command PATH". Mettre un mot de passe admin. Redemarrer le terminal.
Supprimer un fichier rm <nom_du_fichier>
Supprimer un repertoire rm -rf <nom_du_repertoire>
alias g="git"
Uniquement valable pour la session en cours.
L'ecrire dans votre fichier ~/.zshrc pour rendre l'alias permanent.
Suivre les instructions officielles Pour votre platforme specifique.
Pour le serveur Git, nous allons utiliser GitHub avec lequel vous etes deja un peu familiers.
Afin de s'authentifier aupres de GitHub pour pousser du code avec Git, nous allons generer une paire de clefs SSH.
Sur Mac et Linux, ouvrez un terminal.
Sur Windows, ouvrez un terminal Git Bash.
Lancer la commande ls ~/.ssh. Si vous voyez des fichiers ~/.ssh/id_rsa et ~/.ssh/id_rsa.pub, une paire de clef est deja presente, vous pouvez la reutiliser.
Si vous avez deja une paire de clef, vous voulez eviter de reecrire par dessus et la remplacer par une nouvelle, car si vous n'en avez pas fait une copie, la clef perdue ne sera pas recuperable.
Il n'est pas non plus possible d'en regenerer une identique, c'est la tout l'interet de ces paires de clefs cryptographiques.
Allez a l'etape 2b.
Lancer la commande ssh-keygen -t rsa -b 4096 qui va generer une clef SSH de type RSA de longueur 4096 bits.
Vous pouvez egalement chiffrer cette clef avec un passphrase. Pour les besoins de ce TP, laissez le vide.
La clef sera generee dans une paire de fichiers nommes ~/.ssh/id_rsa et ~/.ssh/id_rsa.pub
La clef privee est ~/.ssh/id_rsa, elle doit absolument rester privee comme son nom l'indique.
Si vous l'ouvres, vous noterez qu'elle commence par un bloc -----BEGIN OPENSSH PRIVATE KEY-----.
La clef publique ~/.ssh/id_rsa.pub, elle, a vocation a etre partagee.
Elle a un format similaire a ssh-rsa AAAAB3....ZsaVw== user@machine.
Copiez maintenant la clef publique, nous allons en avoir besoin.
Votre paire de clefs doit rester dans ~/.ssh, mais vous pouvez (devez) la copier en lieu sur. Pour ce TP, votre bureau fera l'affaire...
Si vous developpez regulierement et poussez du code sur Git a l'aide du protocole SSH, considerez la sauvegarder dans un password manager, ou meme l'imprimer sur papier et la garder en lieu sur.
Au cas ou vous viendriez a perdre votre clef publique, il est possible de la regenerer si vous possedez toujours la clef privee avec le parametre -y de la commande ssh-keygen.
Par exemple: ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
:info: > ~/.ssh/id_rsa.pub redirige la sortie de la commande precedente dans le fichier ~/.ssh/id_rsa.pub.
Dans l'interface web de GitHub, aller dans les Settings (Icone de profile en haut a droite puis clicker sur settings).
Clicker sur GPG and SSH keys dans le menu a gauche.
Clicker sur New SSH key.
Lui donner un titre et copier dans le champ key le contenu de votre clef publique.
Enfin clicker sur Add SSH key.
Une des fonctionnalites de Github s'appelle le Fork, fourchette en anglais.
Le fork permet de creer une copie d'un repository vers votre compte.
Appuyer sur le bouton fork en haut a droite, puis Create fork.
Vous serez automatiquement rediriges sur votre fork du repository tp2-git.
Maintenant clickez sur le bouton Code vert, puis selectionnez SSH et copiez l'URL git@github.com:votrenom/tp2-git.git.
Dans votre terminal, a l'aide de la commande cd naviguez ou vous souhaitez cloner le repository, puis lancez la commande git clone git@github.com:jdel/tp2-git.git.
❯ git clone git@github.com:jdel/tp2-git.git
Cloning into 'tp2-git'...
remote: Enumerating objects: 12, done.
remote: Counting objects: 100% (12/12), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 12 (delta 3), reused 12 (delta 3), pack-reused 0
Receiving objects: 100% (12/12), 7.97 KiB | 7.97 MiB/s, done.
Resolving deltas: 100% (3/3), done.
Maintenant naviguez dans votre copie locale du repository avec cd tp2-git.
Lancez la commande git status.
❯ git status
On branch main
nothing to commit, working tree clean
Cela signifie que vous etes a jour avec la branche main du repository distant.
Arrangez vous maintenant en groupes de 2 ou 3 pour la suite du TP.
To be continued
Nom et email arbitraire, problematique -> Signature des commits avec GPG