Travailler avec GitHub Issues et Pull Requests

Avertissement

Cette section est librement adaptée de l’official GitHub guides.

Issues

Une Issue est une note sur une repository de quelque chose qui a besoin d’attention. Ça petu être un bug, une demande de fonctionnalité, une question ou beaucoup des d’autres choses. Sur GitHub, vous pouvez étiqueter, rechercher et assigner les Issues, rendant la gestion active du projet plus facile.

Par exemple, nous allons a voir la section Issues des Bootstrap:

../../_images/listing-screen.png

La gestion des Issues sur GitHub est particulière en raison de son focalisation sur la collaboration, références et formatage de texte excellent. Une issues typique sur GitHub ressemble un peu à ceci :

../../_images/example-issue.png
  • A titre et description décrire ce que la question est tout au sujet.

  • Code couleur étiquettes vous aider à classer et filtrer vos problèmes (tout comme les étiquettes dans l’email).

  • A milestone agit comme un conteneur pour les questions. Ceci est utile pour associer des questions avec des caractéristiques spécifiques ou des phases du projet (p. ex. Weekly Sprint 9/5-9/16 or Shipping 1.0).

  • Un cessionnaire est chargé de travailler sur la question à un moment donné.

  • Commentaires permettre à toute personne ayant accès au référentiel pour fournir des commentaires.

Ouvrir une issue

  1. Cliquez sur l’onglet Issues de la barre latérale.

    ../../_images/navigation-highlight.png
  2. Cliquez sur New Issue.

  3. Donner votre Issue, un titre et une description.

    ../../_images/issue.png

Cliquez sur Submit new Issue lorsque vous avez terminé. Maintenant, cette question a une résidence permanente (URL) que vous pouvez référencer la même après il est fermé.

Délivre des conseils Pro

  • Vérifiez existant questions pour votre question. Un problème de duplication est plus lente pour les deux parties afin de rechercher à travers des questions ouvertes et fermées pour voir si ce que vous exécutez dans a été abordée déjà.

  • Être clair tout ce que votre problème est : quel était le résultat attendu, ce qui est arrivé à la place ? Détailler comment quelqu’un d’autre peut reproduire le problème.

  • Lien vers démos recréer le problème sur des choses comme JSFiddle ou CodePen.

  • Inclut système détails comme ce que le navigateur, bibliothèque ou système d’exploitation que vous utilisez et sa version.

  • Coller la sortie erreur ou journaux dans votre livraison ou dans un Gist. Si en les collant dans le numéro, placez-le dans trois apostrophes inverses: ``` alors qu’il rend très bien.

Branching

Branching est la façon de travailler sur les différentes parties d’un référentiel à un moment donné.

Lorsque vous créez une repository, par défaut, il possède une branche avec le master de nom. Vous pouvez continuer à travailler sur cette branche et avoir qu’un seul, c’est très bien. Mais si vous avez une autre fonction ou idée que vous voulez travailler sur, vous pouvez créer une autre branche, à partir de master, de sorte que vous pouvez confier master de son état de fonctionnement.

Lorsque vous créez une branche, vous faites un copie de la branche d’origine telle qu’elle était à ce point dans le temps (comme un instantané de photo). Si la branche d’origine change pendant que vous travaillez sur votre nouvelle branche, pas de soucis, vous pouvez toujours tirer dans ces mises à jour.

../../_images/branching.png

À GeoNode les développeurs utilisent des branches pour garder les corrections de bugs et de travail de la fonction séparée de master (production) branche. Lorsqu’une fonction ou un fix est prête, la branche est fusionnée en maître à travers un Pull Request.

Créer une nouvelle branche

  • Allez dans le dossier de projet et créer une nouvelle branche

    $ cd /home/geonode/geonode_custom/
    $ sudo git branch add_logo
    $ sudo git checkout add_logo
    
    ../../_images/checkout.png
  • Vérifiez que vous travaillez sur la branche correcte: add_logo.

    $ cd /home/geonode/geonode_custom/
    $ git branch
    
    ../../_images/correct_branch.png
  • Pousser la nouvelle branche sur GitHub.

    $ cd /home/geonode/geonode_custom/
    $ sudo git push origin add_logo
    
    ../../_images/push_branch.png

Faire un commit

Sur GitHub, modifications enregistrées sont appelées commits.

Chaque commit a un associé commit message, qui est une description expliquant pourquoi une modification particulière a été apportée. Grâce à ces messages, vous et autres peuvent lire par le biais de validations et comprendre ce que vous avez fait et pourquoi.

  • Ajouter un nouveau logo à votre GeoNode personnalisé, comme décrit dans la section Thématisation de votre projet de GeoNode

  • Planquer les nouveaux fichiers dans le projet de travail à l’aide de git add

    $ cd /home/geonode/geonode_custom/
    $ sudo git add geonode_custom/static
    $ git status
    
    ../../_images/commit_logo.png
  • Validation les changements fournissant un comit message et poussez-les dans votre branche: add_logo.

    $ cd /home/geonode/geonode_custom/
    $ sudo git commit -m "Adding a new logo to the custom GeoNode"
    $ sudo git push origin add_logo
    
    ../../_images/push_logo.png

Pull Requests

Pull Requests sont le cœur de la collaboration sur GitHub. Lorsque vous effectuez une pull request, vous allez proposer vos modifications et demander que quelqu’un va faire un Merge des vos contributions - aka fusionnez-les dans leur branche. La fonctionnalité des Pull Requests de GitHub vous permettent de comparer le contenu de deux branches. Les modifications, additions et soustractions, sont indiquées en vert et rouge et appelées diffs (différences).

Quand vous apportez une modification, vous pouvez ouvrir une Pull Request. développeurs utilisent PR pour commencer une discussion sur les commits (revision du code) avant que le code soit terminé et avant de faire l’action du merge. De cette façon vous pouvez obtenir les impressions des autres développeurs ou leur aide si vous etes bloquè.

Grâce au système @mention de GitHub dans votre message de demande de tirer, vous pouvez demander des commentaires de personnes spécifiques ou des équipes.

Fusionnez votre Pull Request

Il est temps de rassembler vos modifications – fusionner votre branche de add_logo dans la branche master (l’original).

Cliquez sur le bouton vert pour fusionner les modifications dans le maître. Cliquez sur confirmer fusionner. Allez-y et supprimer la branche, étant donné que ses modifications ont été incorporées, avec le bouton de direction de supprimer dans la boîte de pourpre.

../../_images/merge-button.png

Si vous revisitez sur la question que vous avez ouvert, il est maintenant terminée ! Parce que vous avez inclus “fixes #1” dans le titre de votre demande de tirer, GitHub a pris soin de fermer cette question lorsque la demande de tirer a été fusionnée !