web-dev-qa-db-fra.com

Comment puis-je contribuer au code d'un autre utilisateur dans GitHub?

Je voudrais contribuer à un certain projet dans GitHub . Dois-je fourcher cela? Branche c'est? Qu'est-ce qui est recommandé et comment le faire?

229
wizztjh

Idéalement vous:

  1. Fork le projet
  2. Effectuez un ou plusieurs commits bien commentés et propres dans le référentiel. Vous pouvez créer une nouvelle branche ici si vous modifiez plus d'une pièce ou fonctionnalité.
  3. Effectuez une demande d'extraction dans l'interface Web de github.

s'il s'agit d'une nouvelle demande de fonctionnalité, ne commencez pas par commencer le codage. N'oubliez pas de publier un problème pour discuter de la nouvelle fonctionnalité.

Si la fonctionnalité est bien discutée et qu'il y a quelques +1 ou que le propriétaire du projet l'a approuvée, attribuez-vous le problème, puis suivez les étapes ci-dessus.

Certains projets n'utiliseront pas le système de demande d'extraction. Vérifiez auprès de l'auteur ou de la liste de diffusion quel est le meilleur moyen de réintégrer votre code dans le projet.

180
Yann Ramin

Pour ajouter à réponse de Yann , une fois que vous avez créé un projet, vous pouvez développer n'importe quelle branche de votre choix (une nouvelle ou une du projet original).

Se souvenir de:

31
VonC

Pour ajouter aux réponses de Yan et VonC, c’est une bonne ressource de github eux-mêmes: http://help.github.com/forking/

Assurez-vous également de regarder dans la barre latérale droite sous la rubrique "collaborer".

15
brycemcd

Il existe une excellente vidéo Railscast ici qui vous guide tout au long du processus. Il contient également un certain nombre de conseils utiles, comme expliquer comment déterminer la branche sur laquelle vous souhaitez travailler, en utilisant des tests, des sous-modules, etc.

Bien que ce screencast se concentre principalement sur Rails), la plupart des informations sont valables pour contribuer à tout projet open source.

10
SnapShot

Github a plusieurs façons de collaborer à un projet. Le modèle le plus utilisé par les projets est un modèle de demande d'extraction. J'ai lancé un projet pour aider les gens à faire leur première demande de tirage GitHub. Vous pouvez faire le tutoriel pratique pour faites votre premier PR ici

Le flux de travail est simple comme

  • Fork le repo dans github
  • Cloner le repo sur votre machine
  • Faire une branche et faire les changements nécessaires
  • Poussez vos modifications sur votre fork sur GitHub git Push Origin branch-name
  • Allez à votre embranchement sur GitHub pour voir un Compare and pull request bouton
  • Cliquez dessus et donnez les détails nécessaires
4
sudo bangbang

lornajane a un article de blog qui explique bien le processus: http://www.lornajane.net/posts/2010/contributing-to-projects-on-github

3
dan_nl

Flux de travail technique

Je suggérerais le flux de travail suivant:

  1. Branchez le référentiel (via l'interface Web GitHub: bouton "Fork")
  2. Dans votre référentiel forké, copiez l'URL
  3. Cloner (dans la ligne de commande)

    git clone <url-from-your-workspace>

  4. Entrez le répertoire qui vient d'être créé et créez une branche

    cd <directory> git checkout -b <branchname>

  5. Maintenant, faites vos modifications

  6. Vous pouvez créer un ou plusieurs commits après chaque modification:

    commit -a

  7. Lorsque vous avez terminé, appuyez sur vos modifications

    git Push Origin <branch>

  8. Dans votre ligne de commande, vous devriez voir une URL pour créer le PR . Visitez l'URL et cliquez sur le bouton pour créer un PR.

  9. Sinon, visitez le référentiel dans le navigateur et il vous proposera un bouton pour créer la demande d'extraction.

C'est ça.

Donc, en gros, vous avez créé le référentiel dans votre espace de travail, créé une nouvelle branche et déplacé cette nouvelle branche.

Si, par la suite, vous créez plus de relations publiques à partir du même référentiel cloné, vous devez synchroniser (obtenir les dernières modifications du référentiel d'origine) avant de créer une autre branche pour un autre PR:

git checkout master
git remote add upstream <url-of-original-repo>
git pull upstream master

Autres considérations:

  • le projet peut avoir des directives de contribution: Recherchez un fichier CONTRIBUTING.rst ou .md
  • vous voudrez peut-être suivre les directives de codage du projet
  • vous voudrez peut-être exposer votre idée en premier
  • vous souhaiterez peut-être consulter l'onglet Demandes d'extraction du projet et vérifier s'il existe des relations publiques ouvertes, des relations publiques fusionnées.

Ces suggestions sont là pour vous éviter la peine de mettre du travail dans un PR qui ne sera pas fusionné. S'il y a de l'activité dans le projet et que les relations publiques sont fusionnées, c'est un bon signe. S'il existe des directives de contribution, suivez-les.

Toujours être courtois. Rappelez-vous que les responsables du projet ne sont aucunement obligés de fusionner vos relations publiques. Avez-vous quelque chose de précieux à ajouter au projet?

2
Sybille Peters