Comment faire votre première pull request sur GitHub

Qu'est-ce que la fourche?

Lorsque nous aimons le référentiel de quelqu'un et que nous aimerions l'avoir dans notre compte GitHub, nous le divisons afin de pouvoir travailler avec lui séparément.

Lorsque nous forkons un référentiel, nous obtenons une instance de ce référentiel entier avec toute son histoire. Après avoir bifurqué, nous pouvons faire tout ce que nous voulons sans affecter la version originale.

Qu'est-ce qu'une pull request?

Les pull requests sont la façon dont nous contribuons à des projets de groupe ou à des projets open source.

Par exemple, un utilisateur Harry crée un référentiel de ThanoshanMV et apporte des modifications à ce référentiel. Maintenant, Harry peut faire une pull request à ThanoshanMV, mais c'est à ThanoshanMV de l'accepter ou de la refuser. C'est comme dire: "ThanoshanMV, pourriez-vous retirer mes modifications?"

Ce que signifie contribuer

Non seulement nous pouvons contribuer à un projet open source avec du code, mais nous pouvons également contribuer de bien d'autres manières. Certaines de ces méthodes sont décrites ci-dessous.

Comme le dit le guide de démarrage de hacktitude de la société 99xtechnology IT, nous pouvons contribuer à un projet open source des manières suivantes:

  1. Conception: vous pouvez créer les mises en page d'un projet pour améliorer sa convivialité, améliorer la navigation et le menu du projet en fonction des programmes de recherche des utilisateurs, créer des illustrations pour des logos ou des t-shirts et fournir des guides de style pour le projet.
  2. Rédaction: vous pouvez rédiger et améliorer la documentation du projet ou traduire la documentation, démarrer une newsletter pour le projet ou rédiger des tutoriels pour le projet et organiser les faits saillants de la liste de diffusion, ou organiser un dossier d'exemples montrant comment les projets sont utilisés.
  3. Organisation: vous pouvez lier des problèmes en double, suggérer de nouvelles étiquettes de problème, suggérer de fermer les anciens problèmes en suspens et poser des questions sur les problèmes récemment ouverts pour faire avancer la discussion.
  4. Aidez les autres: répondez aux questions sur les problèmes en suspens, révisez le code des soumissions d'autres personnes et proposez de parrainer un autre contributeur.
  5. Codage: aidez à résoudre les problèmes en suspens, demandez si vous pouvez fournir de nouvelles fonctionnalités et améliorez les outils et les tests.

Faisons notre première pull request!

Si vous n'êtes pas très familier avec Git et GitHub, veuillez consulter le guide du débutant sur Git et GitHub.

1. Forkez le référentiel

Forkez le référentiel en cliquant sur le bouton fork en haut de la page. Cela créera une instance de tout ce référentiel dans votre compte.

2. Clonez le référentiel

Une fois le référentiel dans votre compte, clonez-le sur votre machine pour l'utiliser localement.

Pour cloner, cliquez sur le bouton cloner et copiez le lien.

Ouvrez le terminal et exécutez la commande suivante. Il clonera le référentiel localement.

$ git clone [HTTPS ADDRESS]

Nous avons maintenant mis en place une copie de la branche principale à partir du référentiel principal du projet en ligne.

Nous devons accéder à ce répertoire cloné en exécutant cette commande:

$ cd [NAME OF REPOSITORY]

3. Créez une branche

Il est recommandé de créer une nouvelle branche lorsque vous travaillez avec des référentiels, qu'il s'agisse d'un petit projet ou d'une contribution au travail d'un groupe.

Le nom de la succursale doit être court et refléter le travail que nous faisons.

Créez maintenant une branche en utilisant la git checkoutcommande:

$ git checkout -b [Branch Name]

4. Apportez des modifications et validez-les

Apportez les modifications essentielles au projet et enregistrez-le.

Ensuite, exécutez git statuset vous verrez les changements.

Ajoutez ces modifications à la branche que vous venez de créer à l'aide de la git addcommande:

$ git add .

Maintenant, validez ces modifications à l'aide de la git commitcommande:

$ git commit -m "Adding an article to week 02 of articles of the week"

5. Transférer les modifications vers GitHub

Afin de pousser les modifications vers GitHub, nous devons identifier le nom de la télécommande.

$ git remote

Pour ce référentiel, le nom de la télécommande est «origin».

Après avoir identifié le nom de la télécommande, nous pouvons transmettre en toute sécurité ces modifications à GitHub.

git push origin [Branch Name]

6. Créer une demande d'extraction

Accédez à votre référentiel sur GitHub et vous verrez un bouton "Comparer et extraire la demande" et cliquez dessus.

Veuillez fournir les détails nécessaires sur ce que vous avez fait (vous pouvez faire référence aux problèmes en utilisant «#»). Soumettez maintenant la demande d'extraction.

Toutes nos félicitations! Vous avez effectué votre première demande d'extraction.  

Si votre pull request est accepté, vous recevrez un e-mail.

7. Synchronisez votre branche master forkée

Avant de soumettre des demandes d'extraction au référentiel d'origine, vous devez synchroniser votre référentiel avec celui d'origine.

Même si vous n'allez pas soumettre de pull request au référentiel d'origine, il est préférable de synchroniser avec le référentiel d'origine car certaines fonctionnalités supplémentaires et corrections de bogues peuvent avoir été apportées depuis que vous avez forké le référentiel d'origine.

Suivez ces étapes pour mettre à jour / synchroniser ces modifications dans votre branche principale:

  1. Tout d'abord, vérifiez dans quelle branche vous vous trouvez.
$ git branch

Il répertorie toutes les branches et indique la branche actuelle ou active en vert.

2. Basculez vers la branche maître.

$ git checkout master

3. Ajoutez le référentiel d'origine en tant que référentiel en amont.

Afin d'extraire les modifications du référentiel d'origine dans votre version fourchue, vous devez ajouter le référentiel Git d'origine en tant que référentiel en amont.

$ git remote add upstream [HTTPS]

Ici, [HTTPS] est l'URL que vous devez copier depuis le référentiel du propriétaire.

4. Récupérez le référentiel.

Récupérez toutes les modifications du référentiel d'origine. Les validations dans le référentiel d'origine seront stockées dans une branche locale appelée upstream / master.

$ git fetch upstream

5. Fusionnez-le.

Fusionnez les modifications de l'amont / maître dans votre branche maître locale. Cela synchronisera la branche principale de votre fork avec le référentiel en amont sans perdre vos modifications locales.

$ git merge upstream/master

6. Transférer les modifications vers GitHub

À ce stade, votre branche locale est synchronisée avec la branche principale du référentiel d'origine. Si vous souhaitez mettre à jour le référentiel GitHub, vous devez appliquer vos modifications.

$ git push origin master

REMARQUE: après avoir synchronisé votre branche master forkée, vous pouvez supprimer cette télécommande si vous le souhaitez. Mais vous devrez également mettre à jour / synchroniser votre référentiel à l'avenir, il est donc recommandé de le conserver.

$ git remote rm [Remote Name]

8. Supprimez la branche inutile

Les succursales sont créées dans un but spécial. Une fois cet objectif atteint, ces branches ne sont plus nécessaires, vous pouvez donc les supprimer.

$ git branch -d [Branch Name]

Vous pouvez également en supprimer la version sur GitHub.

git push origin --delete [Branch Name]

Conclusion

GitHub est un outil puissant pour contrôler l'historique des versions. Tout le monde peut contribuer à des projets open source en effectuant des pull requests. Les contributions ne sont pas toujours du code - il existe également d'autres moyens de contribuer.

Enfin, je dois vous dire que vous ne devriez pas vous inquiéter si vos pull requests sont rejetées. Les mainteneurs passent beaucoup de temps à améliorer leurs projets, et ils en savent beaucoup plus sur leurs projets que nous. Alors ne vous inquiétez pas si votre demande n'est pas fusionnée.

Restez fort, restez positif et n'abandonnez jamais.

- Roy T. Bennett, La lumière dans le cœur

Cet article a été initialement publié sur Medium.

Vous pouvez me contacter et me connecter sur Twitter.

Continuez à contribuer au monde open source!