À propos des duplications (fork)
Une duplication est un nouveau référentiel qui partage le code et les paramètres de visibilité avec le référentiel « en amont » d’origine. Les duplications sont souvent utilisées pour itérer sur les idées ou les modifications avant qu’elles ne soient proposées à nouveau au référentiel en amont, par exemple dans des projets open source ou lorsqu’un utilisateur n’a pas d’accès en écriture au référentiel en amont. Pour plus d’informations, consultez « Utilisation des duplications ».
Proposer des modifications à apporter au projet d’une autre personne
Par exemple, vous pouvez utiliser des duplications pour proposer des modifications liées à la correction d’un bogue. Au lieu de journaliser un problème pour un bogue que vous avez trouvé, vous pouvez :
- Dupliquez (fork) le dépôt.
- Appliquer le correctif.
- Soumettre une demande de tirage au propriétaire du projet.
Utiliser le projet d’une autre personne comme point de départ de votre propre idée.
Les logiciels open source reposent sur l’idée que le partage de leur code nous permet de les améliorer et de les rendre plus fiables. Pour plus d’informations, consultez « À propos de l’initiative open source » sur le site Open Source Initiative.
Pour plus d’informations sur l’application des principes open source au travail de développement de votre organisation sur GitHub, consultez le livre blanc de GitHub intitulé « An introduction to innersource ».
Quand vous créez votre dépôt public à partir d’une duplication du projet d’une autre personne, veillez à inclure un fichier de licence qui détermine la façon dont vous souhaitez que votre projet soit partagé avec d’autres personnes. Pour plus d’informations, consultez la page « Choose an open source license » du site choosealicense.com.
Pour plus d’informations sur l’open source, plus précisément sur la manière de créer et de faire évoluer un projet open source, nous avons créé des Guides Open Source qui vous aideront à promouvoir une communauté open source saine en recommandant des meilleures pratiques pour la création et la gestion des dépôts pour votre projet open source. Vous pouvez également suivre un cours gratuit GitHub Skills sur la maintenance des communautés open source.
Prérequis
Si vous ne l’avez pas encore fait, configurez d’abord Git et l’authentification avec votre instance GitHub Enterprise Server à partir de Git. Pour plus d’informations, consultez « Configurer Git ».
Duplication d’un dépôt
Vous pouvez dupliquer un projet pour proposer des modifications au référentiel en amont. Dans ce cas, une bonne pratique consiste à synchroniser régulièrement votre duplication avec le dépôt en amont. Pour cela, vous avez besoin d’utiliser Git sur la ligne de commande. Vous pouvez vous entraîner à définir le dépôt en amont à l’aide du même dépôt octocat/Spoon-Knife que vous venez de dupliquer (fork).
-
Sur votre instance GitHub Enterprise Server, accédez au dépôt octocat/Spoon-Knife.
-
Dans le coin supérieur droit de la page, cliquez sur Dupliquer.
-
Sous « Propriétaire », sélectionnez le menu déroulant et cliquez sur un propriétaire pour le dépôt dupliqué.
-
Par défaut, les duplications ont le même nom que leurs référentiels en amont. Si vous le souhaitez, pour mieux distinguer votre duplication, dans le champ « Nom du dépôt », tapez un nom.
-
Dans le champ « Description », vous pouvez taper la description de votre duplication.
-
Si vous le souhaitez, sélectionnez Copier la branche PAR DÉFAUT uniquement.
Dans de nombreux scénarios de duplication, tels que la contribution à des projets open source, vous devez uniquement copier la branche par défaut. Si vous ne sélectionnez pas cette option, toutes les branches sont copiées dans la nouvelle duplication.
-
Cliquez sur Créer une duplication.
Note
Si vous souhaitez copier des branches supplémentaires à partir du référentiel en amont, vous pouvez le faire depuis la page Branches. Pour plus d’informations, consultez « Création et suppression de branches dans votre référentiel ».
Note
Pour plus d’informations sur GitHub CLI, consultez « À propos de GitHub CLI ».
Pour créer une duplication d’un dépôt, utilisez la sous-commande gh repo fork
.
gh repo fork REPOSITORY
Pour créer la duplication dans une organisation, utilisez l’indicateur --org
.
gh repo fork REPOSITORY --org "octo-org"
Vous pouvez dupliquer un dépôt sur GitHub.com ou dans GitHub Desktop. Pour plus d’informations sur la duplication sur GitHub.com, consultez la version Navigateur web de cet article.
Dans GitHub Desktop, si vous tentez de cloner un dépôt auquel vous n’avez pas accès en écriture, une duplication est automatiquement créée pour vous.
-
Dans le menu Fichier, cliquez sur Cloner le dépôt.
-
Cliquez sur l’onglet qui correspond à l’emplacement du dépôt à cloner. Vous pouvez aussi cliquer sur l’URL pour entrer manuellement l’emplacement du dépôt.
-
Dans la liste des dépôts, cliquez sur le dépôt que vous souhaitez cloner.
-
Pour sélectionner le répertoire local dans lequel vous souhaitez cloner le dépôt, en regard du champ « Chemin d’accès local », cliquez sur Choisir... et accédez au répertoire.
-
En bas de la fenêtre « Cloner un dépôt », cliquez sur Cloner.
-
Lisez les informations de la section « Comment envisagez-vous d’utiliser cette duplication ? » .
- Si vous envisagez d’utiliser cette duplication pour contribuer au dépôt en amont d’origine, cliquez sur Pour contribuer au projet parent.
- Si vous envisagez d’utiliser cette duplication pour un projet qui n’est pas connecté à l’amont, cliquez Pour mon propre usage.
-
Cliquez sur Continuer.
Clonage de votre dépôt dupliqué
Pour l’instant, vous disposez d’une duplication du dépôt Spoon-Knife, mais les fichiers inclus dans ce dépôt ne sont pas localement sur votre ordinateur.
-
Sur votre instance GitHub Enterprise Server, accédez à votre duplication du dépôt Spoon-Knife.
-
Au-dessus de la liste des fichiers, cliquez sur Code.
-
Copiez l’URL du dépôt.
-
Pour cloner le dépôt avec le protocole HTTPS, sous « HTTPS », cliquez sur .
-
Pour cloner le dépôt avec une clé SSH, en incluant un certificat émis par l’autorité de certification SSH de votre organisation, cliquez sur SSH et sur .
-
Pour cloner un dépôt avec l’GitHub CLI, cliquez sur GitHub CLI et sur .
-
-
Ouvrez TerminalTerminalGit Bash.
-
Remplacez le répertoire de travail actuel par l’emplacement où vous voulez mettre le répertoire cloné.
-
Tapez
git clone
, puis collez l’URL que vous avez copiée précédemment. Voici ce à quoi cela ressemble, avec votre nom d’utilisateur GitHub Enterprise Server au lieu deYOUR-USERNAME
:git clone https://HOSTNAME/YOUR-USERNAME/Spoon-Knife
-
Appuyez sur Entrée. Votre clone local va être créé.
$ git clone https://HOSTNAME/YOUR-USERNAME/Spoon-Knife > Cloning into `Spoon-Knife`... > remote: Counting objects: 10, done. > remote: Compressing objects: 100% (8/8), done. > remote: Total 10 (delta 1), reused 10 (delta 1) > Unpacking objects: 100% (10/10), done.
Note
Pour plus d’informations sur GitHub CLI, consultez « À propos de GitHub CLI ».
Pour créer un clone de votre duplication, utilisez l’indicateur --clone
.
gh repo fork REPOSITORY --clone=true
-
Dans le menu Fichier, cliquez sur Cloner le dépôt.
-
Cliquez sur l’onglet qui correspond à l’emplacement du dépôt à cloner. Vous pouvez aussi cliquer sur l’URL pour entrer manuellement l’emplacement du dépôt.
-
Dans la liste des dépôts, cliquez sur le dépôt que vous souhaitez cloner.
-
Pour sélectionner le répertoire local dans lequel vous souhaitez cloner le dépôt, en regard du champ « Chemin d’accès local », cliquez sur Choisir... et accédez au répertoire.
-
En bas de la fenêtre « Cloner un dépôt », cliquez sur Cloner.
Configuration de Git pour synchroniser votre duplication avec le référentiel en amont
Quand vous dupliquez un projet pour proposer des modifications du référentiel en amont, vous pouvez configurer Git pour tirer (pull) des modifications depuis le référentiel en amont vers le clone local de votre duplication.
-
Sur votre instance GitHub Enterprise Server, accédez au dépôt octocat/Spoon-Knife.
-
Au-dessus de la liste des fichiers, cliquez sur Code.
-
Copiez l’URL du dépôt.
-
Pour cloner le dépôt avec le protocole HTTPS, sous « HTTPS », cliquez sur .
-
Pour cloner le dépôt avec une clé SSH, en incluant un certificat émis par l’autorité de certification SSH de votre organisation, cliquez sur SSH et sur .
-
Pour cloner un dépôt avec l’GitHub CLI, cliquez sur GitHub CLI et sur .
-
-
Ouvrez TerminalTerminalGit Bash.
-
Changez de répertoire pour accéder à l’emplacement de la duplication que vous avez clonée.
- Pour accéder à votre répertoire de base, tapez simplement
cd
sans aucun autre texte. - Pour lister les fichiers et dossiers inclus dans votre répertoire actuel, tapez
ls
. - Pour accéder à l’un de vos répertoires listés, tapez
cd YOUR-LISTED-DIRECTORY
. - Pour monter d’un répertoire, tapez
cd ..
.
- Pour accéder à votre répertoire de base, tapez simplement
-
Tapez
git remote -v
, puis appuyez sur Entrée. Vous allez voir le dépôt distant actuellement configuré pour votre duplication.$ git remote -v > origin https://HOSTNAME/YOUR-USERNAME/YOUR-FORK.git (fetch) > origin https://HOSTNAME/YOUR-USERNAME/YOUR-FORK.git (push)
-
Tapez
git remote add upstream
, collez l’URL que vous avez copiée à l’étape 3, puis appuyez sur Entrée. Voici le résultat :git remote add upstream https://HOSTNAME/ORIGINAL-OWNER/Spoon-Knife.git
-
Pour vérifier le nouveau dépôt en amont que vous avez spécifié pour votre duplication, retapez
git remote -v
. Vous devriez voir l’URL de votre duplication indiquée en tant queorigin
et l’URL du référentiel en amont indiquée en tant queupstream
.$ git remote -v > origin https://HOSTNAME/YOUR-USERNAME/YOUR-FORK.git (fetch) > origin https://HOSTNAME/YOUR-USERNAME/YOUR-FORK.git (push) > upstream https://HOSTNAME/ORIGINAL-OWNER/ORIGINAL-REPOSITORY.git (fetch) > upstream https://HOSTNAME/ORIGINAL-OWNER/ORIGINAL-REPOSITORY.git (push)
À présent, vous pouvez garder votre duplication synchronisée avec le dépôt en amont à l’aide de quelques commandes Git. Pour plus d’informations, consultez « Synchronisation d’une duplication ».
Note
Pour plus d’informations sur GitHub CLI, consultez « À propos de GitHub CLI ».
Pour configurer un dépôt distant pour le dépôt dupliqué, utilisez l’indicateur --remote
.
gh repo fork REPOSITORY --remote=true
Pour spécifier le nom du dépôt distant, utilisez l’indicateur --remote-name
.
gh repo fork REPOSITORY --remote-name "main-remote-repo"
Modification d’une duplication
Vous pouvez apporter des modifications à une duplication, notamment :
- Créer des branches : Les branches vous permettent de générer de nouvelles fonctionnalités ou de tester des idées sans faire courir le moindre risque à votre projet principal (main).
- Ouvrir des demandes de tirage : si vous espérez contribuer à nouveau au référentiel en amont, vous pouvez demander à l’auteur original de tirer votre duplication dans son référentiel en lui envoyant une demande de tirage.
Rechercher un autre dépôt à dupliquer
Dupliquez un dépôt pour commencer à contribuer à un projet. Vous pouvez dupliquer (fork) un référentiel privé ou interne sur votre compte personnel ou une organisation sur GitHub où vous disposez d’autorisations pour créer des référentiels, à condition que les paramètres du référentiel et vos stratégies d’entreprise autorisent la duplication. En règle générale, vous pouvez dupliquer n’importe quel dépôt public sur votre compte personnel ou sur une organisation où vous avez l’autorisation de créer des dépôts.
Pour plus d’informations sur le moment où vous pouvez dupliquer un dépôt, consultez « À propos des autorisations et de la visibilité des duplications ».
Étapes suivantes
Vous avez maintenant dupliqué un dépôt, vous vous êtes entraîné à cloner votre duplication et vous avez configuré un dépôt en amont.
-
Pour plus d’informations sur le clonage de la duplication et la synchronisation des modifications dans un dépôt dupliqué à partir de votre ordinateur, consultez « Configurer Git ».
-
Vous pouvez également créer un dépôt dans lequel vous pouvez placer tous vos projets et partager le code sur GitHub. La création d’un référentiel pour votre projet vous permet de stocker du code dans GitHub. Cela fournit une sauvegarde de votre travail que vous pouvez choisir de partager avec d’autres développeurs. Pour plus d’informations, consultez « Guide de démarrage rapide pour les dépôts ».
-
Chaque dépôt sur GitHub appartient à une personne ou à une organisation. Vous pouvez interagir avec les personnes, les dépôts et les organisations en les connectant et en les suivant sur GitHub Enterprise Server. Pour plus d’informations, consultez « Trouver l'inspiration sur GitHub ».
-
GitHub dispose d’une vaste communauté de support dans laquelle vous pouvez demander de l’aide et parler avec des personnes du monde entier. Participez à la conversation dans GitHub Community.