GitHub pour débuter : organiser ses versions et travailler à plusieurs

Découvrez une méthode simple pour utiliser Git et GitHub : créer un dépôt, enregistrer des versions propres, travailler avec des branches et collaborer sans écraser le travail des autres.

Un dossier copié plusieurs fois, des fichiers nommés final-v2 puis final-v2-corrige et des modifications difficiles à retrouver : c’est souvent le signe qu’un projet a besoin d’un système de versionnage. Git permet d’enregistrer l’évolution d’un projet sur son ordinateur, tandis que GitHub sert à héberger ce dépôt et à organiser la collaboration.

Pour débuter, il n’est pas nécessaire de maîtriser toutes les commandes Git. Il faut surtout comprendre le rôle de chaque étape et adopter un flux de travail régulier. Cette méthode convient à un projet web, à un script, à un thème WordPress ou à tout dossier composé de fichiers texte.

Git et GitHub ne désignent pas la même chose

Git est un outil de versionnage distribué. Il conserve l’historique des modifications dans le projet, généralement sur l’ordinateur de chaque contributeur. GitHub est une plateforme en ligne qui peut héberger un dépôt Git, faciliter les échanges et centraliser les demandes de modification.

La distinction est utile dans la pratique :

  • Git suit les changements, crée des versions et permet de revenir à un état précédent ;
  • GitHub stocke une copie distante du dépôt et fournit des fonctions de collaboration ;
  • la commande commit enregistre une étape dans l’historique local ;
  • la commande push envoie les commits vers GitHub ;
  • la commande pull récupère les changements présents sur le dépôt distant.

Un dépôt peut donc fonctionner avec Git sans être publié sur GitHub. À l’inverse, une page GitHub ne remplace pas la compréhension de l’historique local ni la nécessité de sauvegarder correctement le projet.

Préparer un dépôt propre avant le premier commit

Commencez par créer un dossier dédié au projet. Son nom doit être explicite et le dossier ne devrait pas mélanger des fichiers sans rapport : code source, exports temporaires, captures d’écran et sauvegardes manuelles compliquent rapidement l’historique.

Avant d’initialiser Git, ajoutez un fichier .gitignore. Il indique les fichiers que Git ne doit pas suivre, comme les dépendances générées, les fichiers de configuration locaux ou certains journaux. La liste dépend du langage et de l’outil utilisé, mais le principe reste le même : ne versionnez pas automatiquement tout ce qui se trouve dans le dossier.

Vérifiez aussi qu’aucun secret ne figure dans le projet. Une clé d’API, un mot de passe ou un jeton d’accès ne doit pas être placé dans un fichier destiné au dépôt. Utilisez plutôt des variables d’environnement ou un fichier local ignoré par Git, puis documentez les paramètres nécessaires dans un exemple dépourvu de données sensibles.

Créer le dépôt local et observer son état

Dans un terminal ouvert à la racine du projet, la commande git init crée le dépôt local. La commande git status devient ensuite votre point de contrôle principal : elle indique les fichiers nouveaux, modifiés ou déjà préparés pour le prochain commit.

Un commit ne devrait pas être une sauvegarde indistincte de toute votre journée. Il doit correspondre à une modification compréhensible, par exemple « ajouter la validation du formulaire » ou « corriger l’affichage mobile du menu ». Un historique composé d’étapes cohérentes est plus facile à relire et à corriger.

Le cycle quotidien : modifier, vérifier, valider et synchroniser

Un flux simple évite la plupart des mauvaises manipulations. Après une modification, inspectez d’abord ce qui a changé avec git status, puis examinez le détail avec git diff. Cette vérification permet de repérer une ligne de débogage oubliée, un fichier ajouté par erreur ou une modification qui ne correspond pas à l’objectif prévu.

Lorsque le résultat est satisfaisant, préparez les fichiers concernés avec git add, puis créez un commit avec git commit. Le message doit décrire l’action réalisée, et non simplement indiquer « changements » ou « mise à jour ». Enfin, envoyez la nouvelle version vers GitHub avec git push.

  1. Modifier : travailler sur une tâche clairement définie.
  2. Contrôler : consulter le statut et le diff.
  3. Tester : lancer les vérifications adaptées au projet.
  4. Committer : enregistrer une unité de travail compréhensible.
  5. Partager : pousser le commit vers le dépôt distant.

Cette séquence est volontairement prudente. Elle réduit le risque de publier une modification incomplète et rend le diagnostic plus simple si un problème apparaît après la synchronisation.

Pourquoi travailler avec des branches

From below leafless sprig of tree with various green buds growing against clear blue sky on sunny day in nature

La branche principale, souvent appelée main, devrait rester dans un état utilisable. Pour ajouter une fonctionnalité, corriger un problème ou tester une idée, créez une branche distincte. Vous pouvez alors avancer sans mélanger une modification expérimentale avec la version de référence.

Une branche doit représenter une tâche identifiable : correction d’un formulaire, ajout d’une page ou amélioration des styles. Évitez les branches qui regroupent plusieurs sujets sans rapport. Plus une branche reste large et longtemps isolée, plus sa fusion risque de devenir difficile.

Le fonctionnement habituel ressemble à ceci :

  1. récupérer la version récente de la branche principale ;
  2. créer une branche dédiée à la tâche ;
  3. effectuer des commits courts et cohérents ;
  4. pousser la branche sur GitHub ;
  5. ouvrir une demande de fusion, appelée pull request ;
  6. faire relire, tester puis intégrer la modification.

Le nom de la branche peut rappeler son objectif, par exemple correction-formulaire ou ajout-page-contact. L’essentiel est de conserver une convention compréhensible par toute l’équipe.

Utiliser une pull request pour faire relire une modification

Software developer analyzing code on a tablet in a modern office workspace.

Une pull request, ou demande de fusion, ne sert pas uniquement à demander un clic d’approbation. Elle rassemble le contexte de la modification, les fichiers concernés et les éventuelles remarques de vérification. Elle crée un espace où l’équipe peut discuter avant de modifier la branche principale.

Une bonne demande répond à quatre questions :

  • quel problème la modification cherche-t-elle à résoudre ?
  • quels changements ont été réalisés ?
  • quels tests ont été effectués ?
  • reste-t-il un point connu à vérifier ?

La personne qui relit ne devrait pas avoir à deviner l’objectif de la branche. Une description précise accélère la revue et limite les échanges inutiles. Pour une petite équipe, la relecture peut être simple, mais elle reste utile : un regard extérieur repère parfois une régression ou une hypothèse non documentée.

Comprendre les conflits sans les résoudre au hasard

Un conflit apparaît lorsque deux modifications concernent une même partie d’un fichier et que Git ne peut pas choisir automatiquement laquelle conserver. Ce n’est pas une perte de données en soi : Git signale les zones à examiner.

La bonne réaction consiste à identifier l’intention de chaque modification, comparer les deux versions et choisir ou réécrire le résultat attendu. Ne supprimez pas mécaniquement les marqueurs de conflit sans comprendre le code placé autour. Après la résolution, relisez le fichier puis lancez les tests nécessaires avant de créer le commit qui clôt le conflit.

La prévention est souvent plus efficace que la résolution :

  • récupérer régulièrement les changements de la branche principale ;
  • garder les branches centrées sur une tâche ;
  • éviter de reformater tout un fichier au milieu d’une petite correction ;
  • communiquer lorsqu’une même zone du projet est modifiée par plusieurs personnes.

Les règles qui rendent un dépôt réellement exploitable

Un dépôt collaboratif ne se limite pas à une suite de fichiers. Ajoutez un fichier README qui explique le rôle du projet, les prérequis, l’installation et la manière de lancer les tests ou le site en local. Si une étape est nécessaire pour contribuer, elle doit être écrite plutôt que transmise oralement.

Adoptez également quelques règles d’équipe :

  • ne jamais intégrer directement une modification non vérifiée dans la branche principale ;
  • écrire des messages de commit descriptifs ;
  • ne pas stocker de secrets dans le dépôt ;
  • relire les changements avant de les partager ;
  • supprimer ou fermer les branches devenues inutiles ;
  • documenter les décisions qui pourraient être difficiles à comprendre plus tard.

Pour un projet public, vérifiez aussi les droits d’utilisation des dépendances et des ressources ajoutées. Pour un projet privé, limitez les accès aux personnes qui en ont besoin et activez les protections disponibles sur le dépôt selon le niveau de risque.

Une méthode de démarrage adaptée à un petit projet

Pour un premier projet, ne cherchez pas à automatiser toute la chaîne dès le premier jour. Créez un dépôt, ajoutez un .gitignore, rédigez un README court et réalisez quelques commits lisibles. Ensuite, utilisez une branche séparée pour une amélioration réelle et ouvrez une pull request, même si vous êtes seul : cet exercice permet de comprendre le parcours de revue.

Après quelques jours d’utilisation, observez les difficultés rencontrées. Les fichiers souvent oubliés dans le .gitignore, les tests manquants et les conflits répétitifs indiquent les règles à améliorer. GitHub devient réellement utile lorsque l’historique, la documentation et les échanges reflètent le fonctionnement du projet, plutôt que lorsque l’équipe accumule des fonctionnalités sans méthode.

Retenez le principe suivant : un commit explique une étape, une branche isole une tâche et une pull request rend la modification discutable avant son intégration. Cette organisation suffit déjà à remplacer les copies successives de dossiers par un historique consultable et une collaboration plus sûre.

À propos de l’auteur

Maya Connect

Maya Connect est la voix éditoriale de Clic Connect. Curieuse, méthodique et attentive aux usages concrets, elle transforme les sujets numériques complexes en parcours compréhensibles et applicables. Elle relie chaque notion à un objectif précis, explicite les prérequis et distingue systématiquement les faits établis, les bonnes pratiques et les pistes à expérimenter.