80 votes

Comment convertir un clone git en lecture seule de github en un fork

De temps en temps, je rencontre ce problème.

Disons que je n'ai la suite à lire le code source des rails parce que je suis en cours d'exécution dans certaines questions.

git clone git://github.com/rails/rails.git

Au cours de la recherche, j'ai testé quelque chose et maintenant j'ai un fix je voudrais rails de l'équipe de base afin de prendre un coup d'oeil. Comment puis-je pousser mes modifications à un fork de la version de rails.

Rappelez-vous quand j'ai cloné, je n'ai pas cloner un fork de la version, mais une version lecture seule.

Ce n'est pas que je suis opposé à la bifurcation. C'est juste que parfois je pense que je vais me contenter de parcourir ensuite, je veux ajouter quelque chose.

112voto

Brian Campbell Points 101107

Lorsque vous clonez un dépôt, il établit automatiquement une distance appelée origin qui se réfère à l'opération que vous avez cloné. C'est maintenant pointant vers l'amont Rails de projet, mais ce que vous avez besoin est de créer votre propre fourchette que vous pouvez pousser, puis mis en place une télécommande qui points de il y de sorte que vous pouvez pousser.

La première étape est de cliquer sur le "Fork" bouton sur amont projet GitHub page (image de GitHub instructions sur la fourche):

GitHub fork button

Une fois que vous avez fait cela, trouver et copier l'URL de ce repo. Assurez-vous d'utiliser l'URL SSH, qui a accès en lecture et écriture. Il doit être quelque chose comme git@github.com:nadal/rails.git, en supposant que votre nom d'utilisateur est - nadal.

Maintenant, vous pouvez créer la télécommande, ce qui permet de Git pour garder la trace d'un dépôt distant, en tirant ou en poussant à elle en fonction de l'accès que vous avez. Vous pouvez choisir de remplacer origin avec celui qui vous va le pousser à (ce qui est la façon dont beaucoup de gens ont mis en place), ou quitter origin pointant vers l'amont et au lieu de créer une nouvelle télécommande. Je vais vous montrer comment faire la première installation; le second devrait être facile à comprendre.

Pour modifier origin pour pointer vers votre fork sur GitHub, vous aurez probablement envie de garder l'amont de la branche autour de quelque part, donc le renommer en upstream:

git remote rename origin upstream

Maintenant, créez une nouvelle télécommande vers votre fourche:

git remote add -f origin git@github.com:nadal/rails.git

Et maintenant, vous devriez être en mesure de pousser à votre nouvelle fourche:

git push origin master

Une fois que vous êtes heureux avec les changements que vous avez poussé jusqu'à GitHub, et voudrais quelqu'un de la les Rails de l'équipe de la regarder, vous avez deux choix. L'une consiste à envoyer une demande d'extraction à l'aide de GitHub; voir les docs là pour savoir comment faire. Si vous avez seulement une ou quelques petites taches, cependant, les Rails de l'équipe préférez-vous que vous créez un Phare de billet et de vous attacher patch; voir les instructions à contribuer à Rails pour plus d'informations.

edit Voici un schéma pour indiquer ce qu'il se passe. Ce que vous avez fait est tout simplement un clone du en amont des rails de pensions; alors maintenant, vous avez votre propre repo sur votre propre machine, qui se réfère à l' git://github.com/rails/rails.git comme origin:

Github: git://github.com/rails/rails.git
^
|
Télécommandes: origine
|
Votre machine: rails/

Voici ce que vous obtenez si vous fourchue et puis cloner votre fourche:

Github: git://github.com/rails/rails.git <-- git@github.com:nadal/rails.git
^
|
Télécommandes: origine
|
Votre machine: rails/

Si vous suivez mes instructions, voici ce que vous obtiendrez:

Github: git://github.com/rails/rails.git <-- git@github.com:nadal/rails.git
 ^ ^
 | |
Télécommandes: en amont de l'origine
 | |
Votre machine: \-------------------------------rails/

Qui est juste comme la version que vous obtenez par bifurquer, sauf qu'il a aussi un upstream distance de sorte que vous pouvez suivre officiel de changements et de les fusionner dans votre code (si vous avez créé les fourches version, vous auriez probablement souhaitez ajouter l' upstream à distance).

3voto

Stefan Armbruster Points 12620

Un moyen très facile de passer du mode cloné à fourchue utilise le `` wrapper à partir http://hub.github.com/.

Lorsqu’il est installé, il suffit d’exécuter

au sein de votre clone en lecture seule.

1voto

Adam Dymitruk Points 34999

Il ne devrait pas d’importance. Vous pouvez ajouter une autre télécommande, spécifiant votre repo non fourchue, si vous le souhaitez. Poussez vos modifications à celle.

0voto

Svenito Points 345

Ou, si vous ne voulez pas à la fourchette et selon l’équipe de maintenance, vous pouvez créer et soumettre un patch pour eux. Généralement cependant vous faire votre repo disponible soit par dédoublement sur github, comme cela est expliqué dans les autres commentaires, ou sur votre propre repo git et fournir les informations de votre repo et la branche que vous voulez qu’ils se confondent dans les mainteneurs de la repo original.

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