Git premier fork

De EjnTricks
Révision de 21 septembre 2015 à 22:28 par Etienne (discussion | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

La puissance de Git permet de créer sa propre implémentation d'un projet, appelé "fork". Ainsi, il est possible de travailler sur un projet publique, effecter ses modifications / améliorations / évolutions, puis de les soumettre à l'auteur du projet. Cela fonctionne un peu comme une branche, mais sans pourtant être contributeur sur le projet.

Cet article présente un fork réalisé sur le plugin Barometer de Piwik, projet hébergé à l'adresse https://github.com/halfdan/piwik-barometer-plugin.

Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Fork-icon.png Fork

Sur la page du projet, un bouton permet de déclencher le Fork. En cliquant dessus, une fenêtre est affichée permettant de sélectionner le dépôt dans lequel le fork doit être placé, parmi les dépôts disponibles pour le compte.


File-find-icon.png Accès fork

Depuis le compte, il faut accéder à son profile afin d'accéder au fork créé. L'accès à ce profile s'effectue depuis le menu déroulant sous l'icône de l'avatar.


Le profile de l'utilisateur est alors affiché et le fork créé est disponible.


Pour y accéder, il suffit de cliquer sur le lien. Celui-ci est alors présenté.


A noter:

  • L'URL qui contient l'identifiant de l'utilisateur propriétaire du fork;
  • L'accès possible au projet initial depuis un lien sous l'identifiant du projet.


Download-icon.png Clone

Une fois sur le fork, il suffit :

  • Soit de glisser l'adresse depuis la barre de navigation vers GitHub Desktop Client;
  • Soit de cliquer sur le bouton Clone in Desktop.

La deuxième solution est plus simple et déclenche l'ouverture automatiquement de Github Desktop Client, avec une fenêtre de sélection du répertoire où le projet doit être cloné.


Il suffit de sélectionner le répertoire cible, où le projet va être téléchargé. Les fichiers sont alors téléchargés dans un répertoire portant le nom du projet. Une fois terminé, le projet est disponible dans le client.


Icon Personnalisation.png Modifications

Lorsque des modifications sont apportées aux éléments du projet, Github Desktop Client présente le nombre de celles-ci. Il est possible de consulter les changements avec présentation du différentiel.


Un résumé doit être fourni afin de pouvoir mettre à disposition les modifications. Il est également possible d'ajouter une description plus complète de la modification, permettant de mieux comprendre les modifications apportées. Attention dans ce cas, le commit est réalisé sur le dépôt distant et non pas uniquement localement.


Une fois le commit terminé, un message de confirmation est affiché dans le bandeau inférieur.


Pull request-icon.png Pull Request

Il est théoriquement possible d'exécuter cette action depuis GitHub Desktop Client en cliquant sur le bouton "Pull Request". Cependant lors de la rédaction de cet article, une erreur (non identifiée) a été rencontrée. L'action de Pull Request est donc réalisée depuis le site du fork.

Sur la page du fork, il faut cliquer sur le bouton Pull request.


Cette page présente l'ensemble des modifications par rapport à la cible de la fusion des sources. Après contrôle, la demandeest déclenchée en cliquant sur le bouton Create a pull request qui affiche une nouvelle page.


Il est important de donner le maximum d'information sur la modification apportée. Ainsi, le propriétaire pourra bien comprendre l'objet de la demande. Celle-ci est envoyée en cliquant une dernière fois sur le bouton Create pull request. Un message de confirmation est alors affiché.


Le travail est alors terminé, et si la modification est accepté par le propriétaire, celle-ci sera intégrée.


Update icon.png Rebase

Une fois le travail validé, comment faire pour récupérer les potentielles modifications du dépôt principal vers notre dépôt "fork".

Pour cela il faut référencer le dépôt principal, appelé dans ce cas upstream, en exécutant la commande suivante dans l'espace de travail.

$ git remote add upstream URL_MASTER

URL_MASTER est remplacé par l'URL du projet principal.


Puis, il faut récupérer les modifications de la branche principale et effectuer l'opération de rebase.

$ git fetch upstream
From URL_MASTER
 * [new branch]      master     -> upstream/master

$ git rebase upstream/master
First, rewinding head to replay your work on top of it...
Fast-forwarded master to upstream/master.

Les modifications apportées dans la branche "maître" sont alors disponible dans le fork réalisé.