Table of Contents

Git

Bloc note de commandes concernant Git. Parce que concrètement, j'y vais un peu pif. Faudrait que je lise la doc, un jour.

 I have no idea what I'm doing

Ressources :

Connexion en SSH sous Windows

Tout est volé ici : https://www.it-connect.fr/comment-generer-une-paire-de-cles-ssh-et-lutiliser-avec-gitlab/

J'utilise le GitLab de Tedomum avec une authentification SSH. L'authentification par token HTTPS est aussi disponible mais je n'ai vu ça qu'après. OpenSSH est intégré sous Windows 10 et 11.

Générer une clef :

ssh-keygen -t ed25519
Enter file in which to save the key (C:\Users\utilisateur/.ssh/id_ed25519): C:\Users\utilisateur\.ssh\gittedo
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\utilisateur\.ssh\gittedo
Your public key has been saved in C:\Users\utilisateur\.ssh\gittedo.pub
The key fingerprint is:
SHA256:
The key's randomart image is:
+--[ED25519 256]--+
|  ..E  .o++.  o .|
| . .. . oo+= o B |
|  .  .   o+.B *.=|
|       o +.B + =o|
|        S B . . .|
|       + + = . . |
|        + + . o  |
|       . . o o   |
|            . .  |
+----[SHA256]-----+

On met la clef dans le presse papier :

cat C:\Users\utilisateur\.ssh\gittedo.pub | clip

Ajouter la clef privée :

ssh-add C:\Users\utilisateur\.ssh\gittedo

Si d'aventure ssh-add ne fonctionne pas, vérifier si le service est bien lancé soit par services.msc soit avec les commandes suivantes (voir ce fil sur Stackoverflow). Par défaut le service n'est pas lancé :

# Active le service
Get-Service ssh-agent | Set-Service -StartupType Automatic
# Démarre le service
Start-Service ssh-agent
# Vérifie que le service est lancé
Get-Service ssh-agent

Sur GitLab, aller dans Preferences > SSH Keys > Add new key et coller la clef dans le champ Key.

Tenter la connexion :

ssh -T git@forge.tedomum.net
Welcome to GitLab, @yahiko!

Pour que cela fonctionne avec git, il faut aussi indiquer à git la clef privée :

git config --global core.sshCommand "ssh -i C:/users/utilisateur/.ssh/gittedo"

Initialiser un projet

git config --global user.name "Username"
git config --global user.email mail@domaine.tld
cd dossier_du_projet
git init
git remote add origin git@forge.tedomum.net:utilisateur/projet.git

On vérifie

git remote -v

On change la branche

git branch -M main

Ajouter les fichiers au dépot

cd dossier_du_projet
git add [dossier ou fichier]
git commit -m "Commentaire"
git push

Pour le premier envoi j'ai fait :

git add .
git commit -m "Version initiale"
git push --set-upstream origin main

Lors du premier envoi :

git push --set-upstream git@forge.tedomum.net:utilisateur/projet.git main

Si problème lors du push :

git pull --rebase origin main
git push --set-upstream origin main

Git pull

Pour récupérer le projet sur un autre machine

mkdir dossier && cd dossier
git init
git pull git@forge.tedomum.net:utilisateur/projet.git