web-dev-qa-db-fra.com

Comment soumettre une pull request à partir d'un repo cloné?

Comment soumettre une demande d'extraction à partir d'un référentiel existant cloné localement?

Souvent, je veux regarder le code source de certaines bibliothèques de github, donc je le clone. Plus tard, je découvre un problème avec le code et le soulève sur une liste de diffusion, souvent en passant. L'auteur de la bibliothèque dit "Nice find, can you send a pull request?".

Et la réponse est "pas si facilement". Je n'ai pas encore fourré le repo, je l'ai cloné. Et il ne semble pas que je puisse trouver de soumettre une demande de tirage d'un dépôt cloné?

Si cette limite est vraie, on dirait que la réaction sensée est de bifurquer n'importe quoi et tout ce que vous regardez, juste pour que si vous souhaitez contribuer, vous le puissiez. Et cela remplit votre compte github de nombreuses fourches inactives.

Ne semble pas beaucoup parler de ce problème - suis-je la seule personne que ce problème affecte?

75
Ben Hutchison

Forkez le dépôt sur GitHub, puis ajoutez votre dépôt de fourchette en tant que télécommande à votre copie clonée locale:

git remote add myfork https://github.com/<myGitHubAccountName>/<repoName>.git

Ensuite, vous pouvez pousser à votre fourche:

git Push myfork master

Si vous faites plus que cette simple requête, vous pouvez supprimer la télécommande Origin et nommer votre fork comme Origin:

git remote rm Origin
git remote add Origin https://github.com/<myGitHubAccountName>/<repoName>.git

C'est généralement ce que je fais. Parfois, j'ajoute l'origine d'origine en tant que upstream, donc j'ai toujours une référence.

48
bobthecow

Si vous êtes d'accord avec l'installation d'un autre binaire sur votre chemin, github a publié un joli petit outil appelé hub .

Si vous avez cloné le référentiel de quelqu'un d'autre:

$ hub fork  # This creates a fork and adds your repo as a remote

$ git Push YOUR_USER feature  # Push the changes to your new remote

$ hub pull-request  # will open your browser
9
rdrey

Je clone toujours au lieu de fork aussi et les étapes suivantes fonctionnent pour moi:

  1. Créez une nouvelle branche sur votre référentiel cloné et effectuez la nouvelle modification.
  2. Envoyez la modification à votre succursale comme suit:

    git Push Origin insert_your_working_branch_name

  3. Vous devriez maintenant être en mesure de trouver votre branche de travail dans la demande de tirage de github master.

0
ohmyan