283 votes

Envoyer un pull request sur GitHub pour seulement le dernier commit

Je bifurquais un projet sur github et je suis avec succès à faire des changements à mon maître local et en poussant à l'origine sur github. Je veux envoyer une demande d'extraction, mais qui ne veulent inclure le dernier commit. La pull request sur l'INTERFACE utilisateur github.com montre les 9 derniers s'engage et je ne sais pas comment le filtre vers le bas.

Je cherchais à comprendre si je dois créer une nouvelle branche locale, vérifier que, sur et en quelque sorte de réinitialisation ou de rebase en amont? Puis appliquer mon dernier commit de mon maître par l'id de la nouvelle branche locale et de l'utiliser à la demande de pull?

Je vais essayer d'obtenir les concepts de droit et de trouver la bonne commande de lignes pour faire ce dont j'ai besoin.

308voto

Kevin Hakanson Points 15498

Voici ce que j'ai eu à travailler

git checkout -b upstream upstream/master

git cherry-pick <SHA hash of commit>

git push origin upstream

et puis je vois mon upstream branche sur github, interrupteur et peut soumettre la demande de pull avec seulement les changements que je veux.

58voto

Lars Noschinski Points 2619

Créer une nouvelle branche à partir de la dernière validation, qui est également à l'origine du référentiel:

git branch new-branch origin/master
git checkout new-branch

Ensuite, utilisez git cherry-pick pour obtenir le seul commit que vous voulez pull request. Si la branche avec cette validation est appelé feature et le commit que vous voulez, c'est le dernier commit dans cette branche, ce sera

git cherry-pick feature

En supposant que ce patch s'applique sans conflit, vous avez maintenant une branche pour laquelle vous pouvez faire votre demande d'extraction.

Dans une deuxième étape, vous devez maintenant décider quoi faire avec votre feature de la branche. Si vous n'avez pas publié vos changements sur cette branche encore, la meilleure procédure est probablement la relocalisation de cette branche sur la nouvelle-branche (et en supprimant le dernier commit, si ce n'est pas fait automatiquement par git rebase).

26voto

John Naegle Points 2180

Je me suis retrouvé dans une situation où j'avais une fourche fourche et je voulais soumettre une demande d'extraction sur le projet d'origine.

J'ai eu:

  • orignal_project
  • forked_project (créée à partir d'originaux projet à SHA: 9685770)
  • my_fork (créé à partir de fourche projet à SHA: 207e29b)
  • un commit dans ma fourchette (SHA: b67627b) que je voulais soumettre à l'origine du projet

Pour ce faire, j'ai:

  1. créé une nouvelle branche de la SHA, où le projet initial a été fourche
  2. tiré à partir du projet initial
  3. cerise cueillies à la commettre, je voulais soumettre une demande d'extraction
  4. poussé tout à github

Les commandes git étaient quelque chose comme:

  1. git branch ma-fonction-demande 9685770
  2. git checkout ma-fonction-demande
  3. git pull https://github.com/original_project/original_project.git
  4. git cherry-pick b67627b
  5. git push origin ma-fonction-demande

Alors j'ai pris mon-fonction-en tant que demande de la direction générale pour mon pull request à l'origine du projet.

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