234 votes

Comment puis-je contribuer au code des autres sur GitHub?

Je voudrais contribuer à un certain projet sur GitHub. Devrais-je le forker? Le brancher? Qu'est-ce qui est recommandé et comment le faire?

4 votes

J'ai rédigé un guide étape par étape plus détaillé sur la contribution à Concrete5 sur Github, mais le processus pourrait s'appliquer à n'importe quel projet. Consultez-le.

4 votes

1 votes

Peut-être qu'avec une majorité de votes suffisante, une question précédemment fermée devrait être autorisée à être ressuscitée, et laisser les gens contribuer de nouveau au fil de discussion.

188voto

Yann Ramin Points 25139

Idéalement, vous :

  1. Forkez le projet
  2. Faites un ou plusieurs commits bien commentés et propres dans le dépôt. Vous pouvez créer une nouvelle branche ici si vous modifiez plus d'une partie ou fonctionnalité.
  3. Effectuez une demande de tirage dans l'interface web de github.

Si c'est une nouvelle demande de fonctionnalité, ne commencez pas par coder. N'oubliez pas de poster un problème pour discuter de la nouvelle fonctionnalité.

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

Certains projets n'utiliseront pas le système de demande de tirage. Vérifiez avec l'auteur ou la liste de diffusion la meilleure façon de réintégrer votre code dans le projet.

4 votes

Détails sur le forking de GitHub, et les demandes de tirage

1 votes

Oui, demande de fusion. La demande de fusion est un terme spécifique de Gitorious.

2 votes

@MariusKavansky c'est l'inverse ! Une fois que vous savez sur quoi travailler, alors vous contribuez :)

33voto

VonC Points 414372

Pour ajouter à la réponse de Yann, une fois que vous avez forké un projet, vous pouvez développer dans n'importe quelle branche que vous souhaitez (une nouvelle, ou une du projet original)

N'oubliez pas de :

1 votes

Pouvez-vous ajouter des détails ou des liens sur votre deuxième point (rebase de branche) ?

1 votes

@JorgeArtware J'ai mis à jour la réponse avec quelques liens illustrant le rebase.

0 votes

@VonC Je pose une question ici mais si vous pensez que c'est nécessaire, je poserai une toute nouvelle question à ce sujet. Pourquoi devrais-je rebaser plutôt que fusionner, à part avoir une 'histoire droite' ? En d'autres termes, voici ce que je fais lorsque je contribue à certains projets (après que le PR de ma branche de fonctionnalité a été fusionné avec les branches develop et master) : git checkout master; git pull; pareil pour develop (où ma branche de fonctionnalité a été fusionnée en premier) La seule différence à laquelle je pense, après avoir lu "pull vs pull --rebase" et "merge vs rebase", c'est juste l'histoire plate. Y a-t-il autre chose de plus profond ?

15voto

Bryce Points 1620

Pour compléter les réponses de Yan et de VonC, voici une bonne ressource provenant directement de Github : http://help.github.com/forking/

N'oubliez pas non plus de regarder dans la barre latérale droite sous le titre "collaboration".

10voto

SnapShot Points 2409

Il y a une excellente vidéo Railscast ici qui vous guide à travers le processus. Il contient également plusieurs bons conseils, tels que montrer comment déterminer la branche sur laquelle vous pourriez vouloir travailler lors de votre contribution, l'utilisation de tests, de sous-modules, etc.

Bien que ce screencast soit principalement axé sur les développeurs Rails, la plupart des informations sont valables pour contribuer à n'importe quel projet open source.

3voto

dan_nl Points 826

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X