Aller au contenu principal

Branches et collaboration avec GitHub

Une branche maintient une modification séparée pendant son développement et sa revue. La branche par défaut du dépôt est la cible d’intégration habituelle ; son nom et le fait qu’elle soit déployable sont des choix du projet, non des règles Git.

Flux de travail avec des branches

git fetch origin
git switch -c fix/short-description origin/main

# edit and test
git add path/to/file
git commit -m "Fix the short description"
git push -u origin fix/short-description

Remplacez main par la branche par défaut réelle du dépôt. Ouvrez une pull request depuis la branche de fonctionnalité, expliquez pourquoi la modification est nécessaire, résumez la vérification et gardez le travail sans rapport hors du même diff.

Une pull request peut être ouverte avant que le code soit terminé ; marquez-la comme brouillon lorsqu’elle n’est pas prête à être fusionnée. Les personnes pouvant approuver ou fusionner sont déterminées par la protection des branches et la politique du dépôt. De nombreuses équipes exigent l’approbation d’une personne autre que l’auteur.

Revues et fusions

Une revue utile vérifie le comportement, les tests, les limites de sécurité, la compatibilité et les modifications superflues. Résolvez la discussion ou expliquez pourquoi aucune modification n’est nécessaire. Avant de fusionner, mettez à jour la branche si la base a avancé et relancez les contrôles affectés par cette mise à jour.

Les dépôts peuvent employer des commits de fusion, des fusions squash ou des rebasages. Suivez la convention locale plutôt que de réécrire l’historique partagé par défaut. Supprimez une branche de fonctionnalité fusionnée lorsqu’elle n’a plus d’utilité ; ses commits restent dans l’historique du dépôt.

Flux de travail avec un fork

Pour un dépôt dans lequel vous ne pouvez pas pousser directement des branches, créez un fork et utilisez deux dépôts distants :

git clone https://github.com/YOU/PROJECT.git
cd PROJECT
git remote add upstream https://github.com/OWNER/PROJECT.git
git fetch upstream

Ici, origin est le fork et upstream le dépôt source. Pour actualiser une branche par défaut locale sans dépendre de réglages de pull ambigus :

git switch main
git fetch upstream
git merge --ff-only upstream/main
git push origin main

Créez ensuite la branche de contribution à partir de la branche par défaut actualisée. Si la branche amont ne s’appelle pas main, utilisez son vrai nom.

Avant de pousser

  1. Lisez les instructions de contribution et d’agent du dépôt.
  2. Vérifiez git status, le diff non préparé et le diff préparé.
  3. Exécutez les tests les plus réduits capables de détecter les échecs probables de la modification.
  4. Confirmez qu’aucun identifiant, donnée privée, artefact généré ou modification sans rapport n’est entré dans le commit.
  5. Poussez uniquement vers le dépôt distant et la branche prévus.

Un fork conserve les obligations de licence du projet amont. Les droits de contribution et les règles de revue proviennent de ce projet, non de l’existence du bouton de fork.

Références

Explorer les liens

Citée par (1)

Sur les mêmes sujets (2)

Ouvrir le réseau