Objective

Apprenez à utiliser les pull requests de code avec Git en ajoutant une citation inspirante au dépôt d'un membre de l'équipe.

Mission Brief

Vous avez appris à utiliser Git avec l'un de vos dépôts. Mais que se passe-t-il si votre équipe est à l'autre bout de la planète et que vous souhaitez pouvoir collaborer sur le même dépôt ? Suivez ce tutoriel pour apprendre les ficelles de la revue du code.

Sujets couverts :

  • Faire un fork du dépôt d'un membre de l'équipe, créer une pull request et contribuer au dépôt d'un membre de l'équipe.
Durée Audience Prerequisites
15 minutes Vous avez de l'expérience avec Bitbucket Cloud. Sinon, essayez l'un de nos tutoriels pour débutant. You have installed Git
    You have a Bitbucket account

À propos de la duplication (fork)

Lorsque vous travaillez avec le dépôt Bitbucket public d'un autre utilisateur, vous disposez généralement de l'accès en lecture (mais pas en écriture) au code. C'est ici que le concept de fork entre en jeu. Voici comment il fonctionne :

  • Faites un fork du dépôt pour le copier vers votre propre compte.
  • Cloner le dépôt forké depuis Bitbucket vers votre système local.
  • Procédez aux changements dans votre dépôt local.
  • Faites un push des changements vers votre dépôt forké dans Bitbucket.
  • Créez une pull request à partir du dépôt d'origine que vous avez forké pour ajouter les changements que vous avez apportés.
  • Attendez que le responsable du dépôt accepte ou rejette vos changements.

Si le responsable de votre dépôt accepte la pull request, Bitbucket merge les changements de votre code dans le dépôt original. Nous vous recommandons de travailler avec des forks et des pull requests, même si le responsable du dépôt vous donne accès au dépôt public. Bien que le pull fasse partie du workflow Git et Mercurial, les pull requests et les forks sont des concepts utilisés uniquement par les services d'hébergement des dépôts (comme Bitbucket).

Fork du dépôt d'un membre d'équipe

Puisque tout le monde dans votre équipe n'est pas à la station spatiale Bitbucket en même temps, un des membres de votre équipe a décidé que ce serait une bonne idée de rassembler des citations inspirantes auxquelles tout le monde peut se référer, en dessinant les plans d'une nouvelle station spatiale dans les anneaux de Saturne ou en s'aventurant vers un nouveau système solaire ! Un membre de votre équipe a créé un dépôt dans l'idée que tout le monde puisse y contribuer et inspirer les autres. Vous décidez que vous voulez ajouter une citation.

Dans cet exemple, vous allez forker un dépôt public appartenant à un utilisateur appelé tutorials.

  1. En fonction de votre système de contrôle de version décentralisé, utilisez le champ de recherche dans le coin supérieur droit de Bitbucket pour rechercher l'un des dépôts suivants :

  2. Dans le dépôt que vous ouvrez, cliquez sur + dans la barre latérale globale, puis sur Forker ce dépôt dans Se mettre au travail. Bitbucket affiche la page de fork.

    Fork Git

  3. Changez le nom, par exemple, en myteamquotes.

  4. Appuyez sur Faire un fort du dépôt.

Copie de votre fork et modification du dépôt

Avez-vous déjà réfléchi au conseil que vous aimeriez donner aux membres de votre équipe ? Faisons une copie du dépôt forké dans votre système local pour que vous puissiez l'ajouter. 

J'utilise Git !

Étape 1. Clonez votre fork dans votre système local

  1. Dans le dépôt forké de Bitbucket, cliquez sur + dans la barre latérale globale, puis sur Cloner ce dépôt dans Se mettre au travail. Bitbucket affiche la boîte de dialogue de clonage. Par défaut, la boîte de dialogue de clonage définit le protocole sur HTTPS, sauf si vous avez déjà configuré SSH pour Git.

     

    Fork de clonage Bitbucket

     

  2. Copiez la commande de clonage mise en surbrillance depuis la boîte de dialogue contextuelle du clonage.

  1. Depuis la fenêtre de votre terminal, remplacez le répertoire par le répertoire de vos dépôts.

    $ cd ~/repos
  2. Collez la commande copiée depuis Bitbucket dans la ligne de commande, puis appuyez sur Entrée.

  3. Saisissez votre mot de passe Bitbucket lorsque le terminal vous le demande. Il s'agit du mot de passe que vous avez saisi lorsque vous avez créé votre compte Bitbucket. Si vous avez créé votre compte en utilisant un compte Google ou Facebook, utilisez votre mot de passe pour ce compte. À ce stade, la fenêtre de votre terminal devrait ressembler à ceci :

    $ cd ~/repos
    $ git clone https://emmap1@bitbucket.org/emmap1/myteamquotes.git
    Cloning into 'myteamquotes'...
    Password
    remote: Counting objects: 15, done.
    remote: Compressing objects: 100% (15/15), done.
    remote: Total 15 (delta 4), reused 0 (delta 0)
    Unpacking objects: 100% (15/15), done.
    Checking connectivity... done.

    Le dépôt dupliqué se trouve désormais sur votre système local.

Étape 2. Apportez un changement à la source du dépôt

Ce dépôt contient un site Web avec un fichier editme.html. Ce fichier contient des citations inspirantes pour les membres de votre équipe. Maintenant, c'est à votre tour d'enregistrer une citation inspirante… ou juste une de vos citations préférées. Pour contribuer au dépôt, procédez comme suit :

  1. Utilisez Google ou un autre moteur pour rechercher votre citation préférée.

  2. Accédez au dossier de répertoire contenant les fichiers de dépôt (qui doit ressembler à ceci : ~/repos/myteamquotes).

  3. Ouvrez le fichier editme.html avec un éditeur de texte.

  4. Continuez et ajoutez une citation de votre choix. Si vous le souhaitez, vous pouvez ajouter un lien vers une image à votre citation, placez-le simplement au-dessus du tag <blockquote>.

    Voici à quoi ressemblera un ajout :

    <!-- Please don't edit above or below this line.
    Pour ajouter une citation, copiez le div ci-dessous, puis collez-le en bas du fichier.
    Remplissez-le ensuite avec votre citation et son auteur.
    <div class="quote">
    <blockquote>Votre citation vient ici</blockquote>
    <cite>Auteur</cite>
    </div>
    Vous pouvez ajouter un tag d'image facultatif. L'image doit être liée depuis un site externe
    et ne doit pas se trouver dans le dépôt.
    <img src="http://your_image_link.jpg">
    <!--Please don't edit above this line.>
    <div class="quote">
    <img src="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Steve_Jobs_Headshot_2010-CROP.jpg/245px-Steve_Jobs_Headshot_2010-CROP.jpg">
    <blockquote>Put a dent in the universe.</blockquote>
    <cite>Steve Jobs</cite>
    </div>

    Si vous n'êtes pas sûr de la marche à suivre, vous pouvez copier les tags d'exemple en haut du fichier, les coller juste en dessous de la dernière citation de la page, puis les modifier en ajoutant votre citation, comme indiqué dans l'exemple précédent.

  5. Save and close the file.

  6. Depuis la fenêtre de votre terminal, changez le répertoire en myteamquotes.

    $ cd ~/repos/myteamquotes
  7. Affichez l'état du dépôt avec git status.

    $ git status
    On branch master
    Your branch is up-to-date with 'origin/master'.
    Changes not staged for commit:
    (utilisez "git add <fichier>..." pour mettre à jour les éléments à commiter)
    (utilisez "git checkout -- <fichier>..." pour supprimer les changements dans le répertoire de travail)
    modified: editme.html
    no changes added to commit (utilisez "git add" et/ou "git commit -a")

    Si vous avez ajouté un fichier image, vous le verrez également.

  8. Ajoutez vos changements localement avec git add :

    $ git add editme.html
  9. Commitez vos changements localement avec git commit :

    $ git commit -m "Making a change"
    [master 83bc100] Making a change
    1 file changed, 10 insertions(+), 5 deletions(-)
  10. Saisissez git push pour pusher les changements vers votre fork Bitbucket, puis saisissez votre mot de passe pour terminer de pusher les changements.

    $ git push origin master
    Counting objects: 3, done.
    Delta compression using up to 8 threads.
    Compressing objects: 100% (3/3), done.
    Writing objects: 100% (3/3), 340 bytes | 0 bytes/s, done.
    Total 3 (delta 2), reused 0 (delta 0)
    To https://emmap1@bitbucket.org/emmap1/myteamquotes.git
    7479b42..83bc100 master -> master
    Branch master set up to track remote branch master from origin.
  11. Connectez-vous au dépôt Bitbucket, comme vous pouvez le constater, votre push se trouve dans le flux d'activité.

    Flux d'activité Bitbucket

J'utilise Sourcetree !

Étape 1. Clonez votre fork dans votre système local

  1. Sur la page Présentation du dépôt forké dans Bitbucket, cliquez sur l'icône Cloner dans Sourcetree.

    Clone Bitbucket dans SourceTree

  2. Cliquez sur le bouton Cloner dans Sourcetree dans la fenêtre contextuelle qui s'affiche.

  3. Depuis la fenêtre Cloner un nouveau, remplacez le chemin de destination par <répertoire local>/repos/myteamquotes/. Ce chemin de destination renvoie vers le répertoire repos que vous avez créé au préalable pour les dépôts.

    Fenêtre « Clone New » dans Bitbucket

  4. Cliquez sur le bouton Cloner.

Étape 2. Apportez un changement à la source du dépôt

Ce dépôt contient un site Web avec un fichier editme.html. Ce fichier contient des citations inspirantes pour les membres de votre équipe. Maintenant, c'est à votre tour d'enregistrer une citation inspirante… ou juste une de vos citations préférées. Pour contribuer au dépôt, procédez comme suit :

  1. Utilisez Google ou un autre moteur pour rechercher votre citation préférée.

  2. Depuis Sourcetree, cliquez sur le bouton Afficher dans le Finder.

    Présentation SourceTree dans le Finder

  3. Ouvrez le fichier editme.html avec un éditeur de texte.

  4. Continuez et ajoutez une citation de votre choix. Si vous le souhaitez, vous pouvez ajouter un lien vers une image à votre citation, placez-le simplement au-dessus du tag <blockquote>.

    Voici à quoi ressemblera un ajout :

    <!-- Please don't edit above or below this line.
    Pour ajouter une citation, copiez le div ci-dessous, puis collez-le en bas du fichier.
    Remplissez-le ensuite avec votre citation et son auteur.
    <div class="quote">
    <blockquote>Votre citation vient ici</blockquote>
    <cite>Auteur</cite>
    </div>
    Vous pouvez ajouter un tag d'image facultatif. L'image doit être liée depuis un site externe
    et ne doit pas se trouver dans le dépôt.
    <img src="http://your_image_link.jpg">
    <!--Please don't edit above this line.>
    <div class="quote">
    <img src="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Steve_Jobs_Headshot_2010-CROP.jpg/245px-Steve_Jobs_Headshot_2010-CROP.jpg">
    <blockquote>Put a dent in the universe.</blockquote>
    <cite>Steve Jobs</cite>
    </div>

    Si vous n'êtes pas sûr de la marche à suivre, vous pouvez copier les tags d'exemple en haut du fichier, les coller juste en dessous de la dernière citation de la page, puis les modifier en ajoutant votre citation, comme indiqué dans l'exemple précédent.

  5. Save and close the file.

  6. Ouvrez Sourcetree et notez que votre dépôt comprend des changements non commités.

    Changements non commités SourceTree

  7. Cliquez sur le bouton Commit en haut pour commiter le fichier.

    Commit SourceTree

  8. Saisissez le message de commit suivant dans l'espace fourni : « Ajout d'une nouvelle citation. »

  9. Cliquez sur le bouton Commiter sous la zone de message. Lorsque vous revenez à la vue, vous constatez que le fichier a été commité, mais pas pushé vers le dépôt Bitbucket.

  10. Depuis Sourcetree, cliquez sur le bouton Pusher pour pusher vos changements commités.

  11. Dans la boîte de dialogue qui s'affiche, cliquez sur OK pour pusher le commit vers le dépôt.

  12. Connectez-vous au dépôt Bitbucket, comme vous pouvez le constater, votre push se trouve dans le flux d'activité.

Création d'une pull request

Pour impressionner et inspirer les membres de votre équipe avec de sages paroles, vous pouvez demander l'ajout de votre changement au dépôt d'origine. Pour ce faire, vous devez créer une pull request.

Étape 1. Comparer votre fork à l'original

Pendant que vous travailliez à l'ajout de votre citation, un autre membre de l'équipe a peut-être effectué des mises à jour dans le dépôt d'origine. À ce stade, vous pouvez effectuer des vérifications et déterminer si votre fork doit être ajusté en conséquence. Procédez comme suit pour comparer vos changements avec le dépôt :

  1. Connectez-vous à Bitbucket, puis accédez à votre dépôt myteamquotes. Les dépôts forkés disposent d'un widget spécial qui vous permet de comparer le travail de votre fork à l'original.

  2. Cliquez sur + dans la barre latérale globale, puis sur Comparer les branches ou les tags dans Se mettre au travail. La page Comparaison comprend une vue spécialisée disponible uniquement dans les dépôts forkés.

    Fork Git

  3. Appuyez sur le bouton Comparer pour comparer votre dépôt forké au dépôt d'origine.

    Comparer un fork

  4. Si vous souhaitez voir les différences entre votre dépôt actuel et le dépôt d'origine, cliquez sur l'onglet Diff pour comparer les changements. Si plusieurs commits existent, vous voyez leurs changements cumulés par fichier dans cette section. Cliquez sur le bouton Diff côte à côte pour afficher les changements côte à côte. Vous pouvez également appuyer sur le bouton Afficher le fichier pour afficher le fichier complet dans Bitbucket.

    Afficher la comparaison

  5. Revenez à l'onglet Commits pour afficher la liste des commits pushés depuis votre dépôt local vers le fork dans Bitbucket. Pour afficher le contenu d'un commit spécifique isolé, cliquez sur un lien Commit. Bitbucket vous dirige vers la page Commits.

Étape 2. Créer une pull request

Il est maintenant temps de demander que votre citation soit ajoutée au dépôt original pour que tout le monde puisse la voir ! Depuis votre dépôt myteamquotes dans Bitbucket, procédez comme suit :

  1. Cliquez sur + dans la barre latérale globale, puis sur Créer une pull request dans Se mettre au travail. Bitbucket affiche le formulaire de demande.

  2. Complétez le formulaire. Pour votre besoin actuel, vous devez seulement ajouter un Titre. Ensuite, il devrait ressembler à ceci :

    Créer une pull request

  3. Appuyez sur Créer une pull request. Le système ouvre votre dernière demande sur la page Pull Request du dépôt d'origine dans le compte tutorials. Pour voir la liste de toutes les pull requests en comparaison avec ce dépôt, cliquez sur l'onglet Pull Request.

Après avoir créé une pull request, vous ne pouvez pas la supprimer. Si vous supprimez votre fork après avoir fait une requête, le destinataire peut uniquement décliner votre requête, car le dépôt à partir duquel faire le pull n'existe plus.

Étape 3. Découvrir ce qui arrive à votre pull request

Vous devez attendre que le responsable du dépôt accepte votre pull request. Lorsque le responsable du dépôt d'origine se connecte à Bitbucket, le flux d'actualités de cet utilisateur affiche votre pull request et votre fork d'il y a quelques jours, comme illustré sur l'image suivante.

Activité récente

Lorsque le propriétaire de dépôt clique sur votre pull request, cet utilisateur peut la merger ou la rejeter. En plus des propriétaires, toute personne possédant un accès au dépôt peut approuver la requête, ce qui signifie que cette personne a passé en revue les changements dans la pull request.

Pull request Bitbucket
  1. Commits et onglets d'activité : cliquez pour afficher des détails supplémentaires sur la pull request.
  2. Actions de pull request : les propriétaires de dépôt peuvent merger, éditer ou rejeter. Toute personne possédant un accès au dépôt peut approuver.
  3. Fichiers modifiés : notez les fichiers inclus dans la pull request.

Vous avez contribué à un dépôt !

Vous recevez un e-mail lorsque votre pull request est acceptée ou rejetée. Si vous souhaitez essayer d'autres choses dans Bitbucket pendant que vous attendez, découvrez comment activer un outil de suivi de tickets, définir un wiki ou ajouter des permissions pour les utilisateurs.