92 votes

Comment puis-je changer le projet GitHub à partir duquel j'ai bifurqué ?

J'ai bifurqué sur un projet, fait quelques changements, et obtenu une demande de pull acceptée. Mais maintenant, le projet que j'ai bifurqué a été déplacé vers un autre dépôt et est une bifurcation de ce dépôt.

C'est-à-dire :

Original -> MyFork

Maintenant :

NewOriginal -> Original -> MyFork

Comment le faire parvenir aux personnes suivantes ?

NewOriginal -> MyFork

46 votes

La réponse acceptée fournit une solution de contournement, mais ne répond pas vraiment à la question principale, à savoir comment modifier les métadonnées "forked from" sur GitHub lui-même. Je suis intéressé par la même chose.

1 votes

@MatthewFlaschen Moi aussi. Peut-être que le moyen le plus simple est de le re-forker dans l'interface utilisateur de GitHub, puis de pousser votre repo de fork local vers le nouveau fork ? Ce serait bien de pouvoir ajuster tout cela dans l'interface utilisateur de GitHub, cependant.

0 votes

Pourquoi cette question reste-t-elle là, sans réponse ? Y a-t-il une suggestion/un problème à résoudre dans Github que quelqu'un peut indiquer ? C'est une fonctionnalité manquante évidente et embarrassante pour Github, à mon avis.

80voto

Castrohenge Points 2919

NOTE : La solution suivante est incomplète car vous perdrez tout le contenu du wiki et les problèmes spécifiques à votre fork.

Vous pouvez y parvenir en suivant les étapes suivantes :

  1. Tirez vers le bas toutes les branches et les tags de votre fork existant.
  2. Supprimez votre dépôt sur GitHub.
  3. Fork à partir du nouveau dépôt.
  4. Mettre à jour la télécommande URL si nécessaire.
  5. Poussez toutes vos branches locales et vos tags vers le nouveau dépôt.

9 votes

C'est la réponse correcte à la question posée - le PO doit changer la vue de github sur le "parent", de sorte que lorsqu'il émet des pull requests, elles vont au nouveau parent et non à l'ancien. Il semble que la seule solution soit de supprimer le dépôt et de le recréer.

45 votes

Il s'agit d'une solution de contournement pour une fonctionnalité manquante dans github.

4 votes

C'est une honte que Github ne dispose pas encore d'un flux de travail plus agréable pour cela.

59voto

poke Points 64398

Localement, vous pouvez simplement changer la cible du dépôt d'origine. Habituellement, ce dépôt est appelé en amont alors vous feriez ça :

git remote set-url upstream git://example.com/NewOriginal.git

En fonction de l'hôte que vous utilisez (c'est-à-dire l'endroit où se trouve votre fork), il peut y avoir des liens internes supplémentaires que vous ne pouvez pas modifier aussi facilement. Par exemple, sur Github, le fork est directement lié à l'original à partir duquel vous avez bifurqué. Dans ce cas, vous devez à nouveau bifurquer le nouveau projet et travailler avec la nouvelle bifurcation.

Dans ce cas, cependant, vous pouvez facilement modifier le URL de la origine et poussez tout ce que vous avez modifié auparavant dans votre ancienne fork vers votre nouvelle fork.

12 votes

Habituellement, la télécommande pour le dépôt amont est appelée origin

8 votes

@knittl : Pas vraiment, le dépôt amont est le dépôt d'origine sur lequel la bifurcation est basée. L'origine est votre dépôt public à partir duquel vous avez cloné, c'est-à-dire la bifurcation.

2 votes

Si vous clonez un dépôt, les branches de ce dépôt seront disponibles par l'intermédiaire de l'interface utilisateur. origin à distance. l'url du origin remote est l'url à partir de laquelle le clone a été réalisé. il n'y a pas de upstream à distance par défaut dans git

9voto

knittl Points 64110

Mettre à jour la télécommande URL dans votre dépôt :

git remote set-url origin <url to NewOriginal, e.g. git://…/bla.git>

4 votes

Ça ne marchera pas. Le PO a toujours besoin que l'origine soit définie sur MaFourchette afin de pouvoir faire des demandes de pull contre NewOriginal une fois qu'il a poussé ses changements vers MaFourchette sur GitHub. Il n'a pas d'accès en écriture à NewOriginal, donc mettre l'origine à cela fera échouer ses poussées.

2voto

jkmartin Points 11

Il semble que Github y fasse référence en tant que "rerouter" une fourche . Cela peut être demandé comme une action humaine manuelle, comme une demande de soutien .

1voto

user2651178 Points 19

En supposant que vous avez effectué la bonne bifurcation et l'ajout en amont voir githubHelpOnFork ; pour simplement changer l'URL amont, faites :

  1. vérifier à quoi ressemble votre amont et votre origine actuels :

    git remote -v
  2. si vous voyez un amont listé et que vous voulez juste changer son url, faites ce que @poke a suggéré (sinon suivez le lien helpGithub ci-dessus pour ajouter un nouvel amont) :

    git remote set-url upstream git://example.com/NewOriginal.git
  3. puis vérifiez que l'amont pointe vers la nouvelle URL

    git remote -v

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X