Je voudrais contribuer à un certain projet dans GitHub . Dois-je le fourche ? Branche- le? Qu'est-ce qui est recommandé et comment le faire?
Je voudrais contribuer à un certain projet dans GitHub . Dois-je le fourche ? Branche- le? Qu'est-ce qui est recommandé et comment le faire?
Réponses:
Idéalement vous:
s'il s'agit d'une nouvelle demande de fonctionnalité, ne commencez pas le codage en premier. 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 en a +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'utilisent pas le système de demande d'extraction. Vérifiez auprès de l'auteur ou de la liste de diffusion la meilleure façon de réintroduire votre code dans le projet.
Pour ajouter à la réponse de Yann , une fois que vous avez bifurqué un projet, vous pouvez développer dans n'importe quelle branche de votre choix (une nouvelle ou une du projet d'origine)
Se souvenir de:
origin
', car ce origin
serait votre propre dépôt, résultat de la fourche)git checkout master;
git pull;
même pour le développement (où ma branche de fonctionnalités a été fusionnée en premier) La différence que je peux penser de, après avoir lu "pull vs pull --rebase" et "merge vs rebase" n'est que l'histoire plate. Autre chose de plus profond?
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 "Collaboration".
Il y a une excellente vidéo Railscast ici qui vous guide à travers le processus. Il contient également un certain nombre de bons conseils tels que montrer comment déterminer la branche sur laquelle vous souhaitez travailler lors de la contribution, à l'aide de tests, de sous-modules, etc.
Bien que cette capture d'écran soit principalement axée sur les développeurs Rails, la plupart des informations sont valables pour contribuer à tout projet open source.
Github a plusieurs façons de collaborer à un projet. Le modèle que la plupart des projets utilisent est un modèle de demande d'extraction. J'ai lancé un projet pour aider les gens à faire leur première demande d'extraction GitHub. Vous pouvez faire le tutoriel pratique pour faire votre premier PR ici
Le flux de travail est aussi simple que
git push origin branch-name
Compare and pull request
boutonlornajane a un article de blog qui explique bien le processus: http://www.lornajane.net/posts/2010/contributing-to-projects-on-github
Je suggère le workflow suivant:
Cloner (en ligne de commande)
git clone <url-from-your-workspace>
Entrez dans le répertoire qui vient d'être créé et créez une branche
cd <directory>
git checkout -b <branchname>
Maintenant, faites vos changements
Vous pouvez créer un ou plusieurs validations après chaque modification:
commit -a
Une fois terminé, appuyez sur vos modifications
git push origin <branch>
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.
Sinon, visitez le référentiel dans le navigateur et il vous proposera un bouton pour créer la pull request
C'est tout.
Donc, en gros, vous avez bifurqué le référentiel vers votre espace de travail, créé une nouvelle branche et poussé cette nouvelle branche.
Si vous effectuez plus de RP à 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
Ces suggestions sont là pour vous éviter d'avoir à mettre du travail dans un PR qui ne sera pas fusionné. S'il y a une activité dans le projet et que les RP fusionnent, c'est un bon signe. S'il existe des directives de contribution, suivez-les.
Soyez toujours courtois. N'oubliez pas que les responsables du projet ne sont en aucun cas obligés de fusionner votre PR. Avez-vous quelque chose de précieux à ajouter au projet?