🐙Git, GitHub & sauvegardes
Votre code mérite un filet. Git pour tout versionner, GitHub pour le mettre à l'abri et le partager, et une vraie stratégie de sauvegarde pour ne jamais rien perdre, même si la machine grille.
Vous venez de poser un agent qui va écrire du code à toute vitesse. Avant qu’il ne touche quoi que ce soit d’important, on installe le filet : Git, pour que chaque changement soit réversible, et GitHub, pour que votre travail vive ailleurs que sur ce seul petit boîtier. Parce qu’un mini-PC, ça peut griller, se faire voler, ou se prendre un rm de trop. Votre code, lui, ne doit jamais disparaître avec.
Pourquoi c’est non négociable (surtout avec un agent)
Un agent de code va vite, et il a confiance en lui. La plupart du temps c’est génial ; parfois il casse quelque chose. Git transforme ça en non-événement :
- Chaque commit est un point de restauration. L’agent a tout cassé ?
git restoreougit reset, et vous revenez à l’état d’avant en une seconde. C’est le « annuler » ultime. - Vous voyez exactement ce qui a changé.
git diffvous montre, ligne par ligne, ce que l’agent a touché. Vous relisez avant de valider, c’est le cœur du métier (voir Sécuriser les accès). - GitHub met votre code hors de portée des catastrophes. Disque mort, vol, fausse manip : votre code est sur GitHub, intact. Vous le récupérez sur n’importe quelle machine en une commande.
- Et vous pouvez partager. Donner accès à un collègue, bosser à plusieurs, ouvrir en open source : tout passe par GitHub.
Configurer Git sur la machine
Trois lignes, une fois pour toutes. Git a besoin de savoir qui vous êtes (ça signe vos commits) :
git config --global user.name "Ton Prénom Nom"
git config --global user.email "[email protected]"
# Quelques défauts sains
git config --global init.defaultBranch main # la branche par défaut s'appelle "main"
git config --global pull.rebase false # comportement de pull prévisible
Donner à la machine l’accès à GitHub
Votre machine doit prouver à GitHub qu’elle a le droit de pousser. Deux chemins ; prenez celui qui vous parle.
Le plus simple : la GitHub CLI (gh)
L’outil officiel gh gère l’authentification pour vous, jetons compris.
# Installe gh (méthode officielle Ubuntu)
sudo apt install -y gh
# Connecte la machine à ton compte, réponds aux questions, ça ouvre un navigateur
gh auth login
Choisissez « GitHub.com », puis « SSH » comme protocole : gh génère et installe la clé tout seul. À la fin, votre machine peut cloner, pousser, créer des dépôts. C’est l’option que je recommande pour démarrer.
L'option manuelle : une clé SSH dédiée à la machine
Si vous préférez tout maîtriser, créez une clé SSH propre à ce mini-PC (une clé par machine, c’est plus sain) :
ssh-keygen -t ed25519 -C "mini-pc-github"
cat ~/.ssh/id_ed25519.pub # copie ce qui s'affiche
Collez la clé publique dans GitHub → Settings → SSH and GPG keys → New SSH key. Puis vérifiez :
ssh -T [email protected] # doit te saluer par ton pseudo GitHub
Votre premier dépôt, et l’agent qui s’en sert
cd ~/mon-projet
git init
# Le fichier qui dit à git quoi IGNORER, crucial
cat > .gitignore <<'EOF'
node_modules/
.env
*.log
dist/
EOF
git add -A
git commit -m "Premier jet"
# Crée le dépôt distant et pousse (avec gh, c'est une ligne)
gh repo create mon-projet --private --source=. --push
Une fois en place, demandez à votre agent de gérer git pour vous : « commits réguliers avec des messages clairs », « crée une branche pour cette fonctionnalité », « ouvre une pull request ». Vous pouvez même l’inscrire dans votre fichier mémoire : « commit après chaque étape validée, messages conventionnels, ne pousse sur main qu’avec mon accord. »
Les sauvegardes : la règle 3-2-1
GitHub sauve votre code. Mais votre mini-PC contient bien d’autres choses qui ne sont pas dans git : vos fichiers .env, vos bases de données, des données générées, des configs système. Pour celles-là, on applique la règle d’or de la sauvegarde :
Décidez quoi sauvegarder
- Le code → déjà sur GitHub, rien à faire de plus.
- Les secrets (
.env, clés) → sauvegardez-les chiffrés, jamais en clair. - Les données qui comptent (bases, fichiers générés, configs maison).
- Pas les modèles Ollama ni
node_modules: ils se re-téléchargent, inutile de les sauvegarder.
Choisissez un outil et une destination
restic est l’outil idéal : sauvegardes chiffrées, dédupliquées, incrémentales. Vous l’envoyez vers un NAS, un autre disque, ou un stockage cloud.
sudo apt install -y restic
# Initialise un dépôt de sauvegarde (ex: vers un NAS monté)
restic -r /mnt/nas/backups init
# Première sauvegarde
restic -r /mnt/nas/backups backup ~/projets ~/configs
rclone est une excellente alternative pour viser un stockage cloud (chiffré côté client).
Automatise, une sauvegarde manuelle finit toujours par s'oublier
Programmez un timer systemd ou une tâche cron quotidienne. Votre agent sait écrire ça en deux minutes : demandez-lui « crée un service systemd qui lance ma sauvegarde restic chaque nuit à 3h ».
TESTEZ votre restauration
Une sauvegarde que vous n’avez jamais restaurée n’est pas une sauvegarde, c’est un espoir. Faites l’exercice au moins une fois : restic -r /mnt/nas/backups restore latest --target /tmp/test-restore, et vérifiez que vos fichiers sont bien là.