[Tuto] Travailler avec Codeberg au quotidien : SSH, git et vitrine GitHub automatique

l’Almanet doLys Gnu/Linux – Open Source – Entreprises Forums L’almanet doLys Open Source [Tuto] Travailler avec Codeberg au quotidien : SSH, git et vitrine GitHub automatique

  • This topic is empty.
Affichage de 1 message (sur 1 au total)
  • Auteur
    Articles
  • #13108
    nam1962nam1962
    Keymaster

      Votre code est sur Codeberg, maintenant on bosse.

      Mais au fait, c’est quoi git ?

      Imaginez que vous écrivez un livre. Vous avez une première version, puis vous modifiez un chapitre, puis un autre. Un jour, vous réalisez que la version d’il y a trois semaines était meilleure. Mais vous avez tout écrasé. Catastrophe.

      Git, c’est la machine à remonter le temps de vos fichiers.

      Chaque fois que vous enregistrez une étape (on appelle ça un commit), git prend une photo de tout votre projet. Vous pouvez revenir à n’importe quelle photo, comparer deux versions, ou repartir dans une direction différente sans risque.

      Et quand je dis « fichiers », ce n’est pas que du code. Des livres, des thèses, des articles scientifiques, de la documentation, des recettes de cuisine, des constitutions… On trouve de tout sur les forges git. Si c’est du texte et que ça évolue dans le temps, git sait le gérer. Livre ou code, c’est exactement le même principe.

      D’où ça vient ?

      C’est Linus Torvalds qui a créé git en 2005. Oui, le même Linus qui a créé Linux. Il en avait marre des outils existants pour gérer le code du noyau Linux avec des milliers de contributeurs dans le monde.

      Alors il a fait le sien. En deux semaines.

      En solo : votre filet de sécurité

      Git vous sert de filet de sécurité. Vous essayez un truc, ça casse tout ? Pas de panique, un git checkout et vous revenez à la version qui marchait.

      C’est comme le ctrl-Z, mais en plus puissant et sur tout votre projet d’un coup.

      En équipe : la magie

      C’est là que ça devient intéressant. Chacun travaille sur sa copie (un clone), fait ses modifications, puis les pousse (push) vers le dépôt commun.

      Si un collègue a modifié le même fichier, git vous aide à fusionner les deux versions. Et quand vous voulez récupérer le travail des autres, vous tirez (pull).

      Et les forges dans tout ça ?

      Pour que tout le monde puisse accéder au dépôt commun, il faut l’héberger quelque part sur internet. C’est le rôle des forges : GitHub, GitLab, Framagit, et bien sûr Codeberg, qui est la forge que nous utilisons ici.

      Mais au fait, pourquoi parle-t-on de « forges » ? Imaginez une vraie forge de forgeron : plusieurs artisans qui cognent sur le même morceau de fer rouge, qui se passent les outils, qui améliorent la pièce ensemble sans tout casser. C’est exactement ça. GitHub, GitLab, Framagit ou Codeberg sont des ateliers numériques ouverts où tout le monde peut venir « forger » du code.

      Si vous ne savez pas pourquoi Codeberg plutôt que GitHub, lisez d’abord le tuto de migration.

      Le fork : tout bêtement une fourche à plusieurs dents

      Si vous voulez participer à un projet sans avoir les clés de la maison, vous faites un fork : vous prenez une copie complète du dépôt dans votre propre atelier. Vous pouvez alors bidouiller autant que vous voulez, tester des idées folles, corriger des bugs… et, quand c’est nickel, vous envoyez poliment vos améliorations aux auteurs d’origine via une pull request.

      Parfois, le fork reste amical et sert simplement à contribuer. Mais il arrive aussi qu’un fork devienne dissident : les contributeurs ne sont plus d’accord sur la direction du projet et décident de continuer chacun de leur côté. Et il y a les forks de reprise : quand un projet est abandonné, plus maintenu, plus mis à jour, quelqu’un peut le forker pour le faire revivre, corriger les failles de sécurité ou l’adapter à de nouveaux besoins. Dans tous les cas, pas de risque : chacun travaille dans son coin, et le meilleur gagne (ou coexiste pacifiquement).

      Maintenant qu’on a les bases, voyons comment travailler concrètement.



      Cloner et pousser du code

      Rien de sorcier, c’est du git standard. La seule chose qui change, c’est l’URL.

      Cloner un dépôt existant

      git clone https://codeberg.org/votre-orga/votre-repo.git

      Travailler et pousser

      cd votre-repo
      # ... vous bossez ...
      git add -A
      git commit -m "Description de ce que vous avez fait"
      git push

      C’est tout. Si vous savez utiliser git avec GitHub, vous savez utiliser git avec Codeberg. Zéro différence.

      Configurer les clés SSH (recommandé)

      Pour ne plus jamais taper de mot de passe, configurez une clé SSH. C’est la méthode la plus propre et la plus sécurisée.

      1. Générer une clé

      Si vous n’en avez pas encore :

      ssh-keygen -t ed25519 -C "votre@email.com"

      Acceptez le chemin par défaut (~/.ssh/id_ed25519). Mettez une passphrase si vous le souhaitez (recommandé).

      2. Ajouter la clé publique sur Codeberg

      cat ~/.ssh/id_ed25519.pub

      Copiez le résultat. Allez sur Codeberg : Settings > Clés SSH/GPG > Ajouter une clé. Collez. Validez.

      3. Cloner en SSH

      À partir de maintenant, clonez en SSH plutôt qu’en HTTPS :

      git clone git@codeberg.org:votre-orga/votre-repo.git

      Plus de mot de passe, plus de token, c’est propre.

      4. Convertir un dépôt existant

      Si vous aviez déjà cloné en HTTPS et que vous voulez passer en SSH :

      cd votre-repo
      git remote set-url origin git@codeberg.org:votre-orga/votre-repo.git

      Vérifiez :

      git remote -v

      Gérer ses identifiants proprement

      Si vous préférez rester en HTTPS (par exemple derrière un pare-feu qui bloque SSH), git vous demandera vos identifiants à chaque push.

      La méthode simple (mais pas idéale)

      git config --global credential.helper store

      Vos identifiants seront stockés en clair dans ~/.git-credentials. Ça fonctionne, mais ce n’est pas terrible niveau sécurité.

      La méthode propre : token à durée limitée

      Sur Codeberg : Settings > Applications > Generate Token. Donnez-lui uniquement la permission repository et une date d’expiration. Utilisez ce token comme mot de passe quand git vous le demande.

      La méthode KeePassXC

      Si vous utilisez KeePassXC (et vous devriez), il peut servir de credential helper pour git. Vos identifiants restent dans votre coffre-fort chiffré, pas en clair sur le disque.

      Créer un nouveau projet sur Codeberg

      Depuis l’interface web de Codeberg, cliquez sur + > New Repository. Choisissez votre organisation ou votre compte perso, donnez un nom, une description, une licence. Validez.

      Puis en local :

      cd ~/git/votre-orga
      git clone git@codeberg.org:votre-orga/mon-nouveau-projet.git
      cd mon-nouveau-projet
      # ... commencez à coder ...
      git add -A
      git commit -m "Premier commit"
      git push

      Ou si vous avez déjà un dossier local avec du code :

      cd mon-dossier-existant
      git init
      git remote add origin git@codeberg.org:votre-orga/mon-nouveau-projet.git
      git add -A
      git commit -m "Premier commit"
      git push -u origin main

      Ajouter une vitrine GitHub en 2 minutes

      Vous avez un nouveau projet sur Codeberg et vous voulez qu’il apparaisse aussi sur GitHub pour la visibilité ? Deux minutes montre en main.

      1. Créez un dépôt vide sur GitHub

      Sur GitHub : New repository, même nom que sur Codeberg. Ne cochez rien (pas de README, pas de .gitignore, pas de licence).

      2. Poussez un README de redirection

      cd /tmp
      mkdir gh-vitrine && cd gh-vitrine
      git init
      echo '# mon-nouveau-projet
      
      Ce dépôt est une archive. Le développement actif se fait sur Codeberg :
      
      https://codeberg.org/votre-orga/mon-nouveau-projet
      
      Issues, contributions et code à jour sont sur Codeberg.' > README.md
      git add README.md
      git commit -m "Vitrine - développement actif sur Codeberg"
      git branch -M main
      git remote add origin https://github.com/votre-user/mon-nouveau-projet.git
      git push -u origin main
      cd /tmp && rm -rf gh-vitrine

      3. Archivez immédiatement

      Si vous avez gh (le CLI GitHub) :

      gh repo archive votre-user/mon-nouveau-projet --yes

      Sinon : Settings > Danger Zone > Archive this repository.

      Et voilà : bandeau jaune « archived », README qui pointe vers Codeberg. Microsoft fait la pub gratuitement. Répétez pour chaque nouveau projet, c’est devenu un réflexe en 2 minutes.


      Résumé du workflow

      1. Vous créez vos projets sur Codeberg
      2. Vous travaillez normalement avec git (clone, commit, push)
      3. Vous ajoutez une vitrine archivée sur GitHub pour la visibilité
      4. Codeberg est votre source de vérité, GitHub n’est qu’un panneau d’affichage

      Pour la migration initiale de vos dépôts existants, consultez : Migrer de GitHub vers Codeberg : tuto complet pour reprendre le contrôle de son code.

      Pense-bête Git : les ressources les plus simples

      Voici les meilleurs aide-mémoire :

      • Le plus simple du monde (en français) : git – the simple guide → zéro blabla, juste l’essentiel avec des dessins.
      • L’aide-mémoire officiel GitHub (PDF) : Télécharger le PDF
      • Dans le terminal (le plus rapide) : installez tldr et tapez tldr git, tldr git commit, tldr git push

      Exemples

      ➜  ~ tldr git         
      
        git
      
        Système de gestion de versions décentralisé.
        Certaines commandes comme `git commit` ont leur propre documentation.
        Plus d'informations : https://git-scm.com/docs/git.
      
        - Exécuter une sous-commande Git :
          git sous_commande
      
        - Exécuter une sous-commande Git sur un répertoire personnalisé :
          git -C chemin/vers/repertoire sous_commande
      
        - Exécuter une sous-commande Git avec un paramètre de configuration spécifique :
          git -c 'cle_param_config=valeur' sous_commande
      
        - Afficher l'aide générale :
          git --help
      
        - Afficher l'aide sur une sous-commande Git :
          git help sous_commande
      
        - Obtenir la version de Git :
          git --version
      
      ➜  ~ tldr git commit
      
        git commit
      
        Enregistrer (`commit`) les fichiers dans le dépôt.
        Plus d'informations : https://git-scm.com/docs/git-commit.
      
        - Commit les fichiers en stage dans le dépôt avec un message :
          git commit --message "message"
      
        - Commit tous les fichiers modifiés avec un message :
          git commit --all --message "message"
      
        - Met à jour le dernier commit avec les modifications en stage :
          git commit --amend
      
        - Commit seulement les fichiers spécifiés (qui sont déjà en stage) :
          git commit chemin/vers/mon/fichier1 chemin/vers/mon/fichier2 ...
      
      ➜  ~ 

      Made with soin, café, et sans Microsoft.

      Un jeune site que j’aime bien, la ferrari du T-shirt …bio en plus : GoudronBlanc

      Un jeune site que j'aime bien, la ferrari du T-shirt ...bio en plus : GoudronBlanc

    Affichage de 1 message (sur 1 au total)
    • Vous devez être connecté pour répondre à ce sujet.