1193 votes

Comment fusionner un commit spécifique dans Git

J'ai forké une branche à partir d'un dépôt sur GitHub et commis quelque chose de spécifique pour moi. Maintenant, j'ai découvert que le dépôt original avait une fonctionnalité intéressante qui se trouvait à HEAD.

Je veux la fusionner uniquement sans les commits précédents. Que dois-je faire? Je sais comment fusionner tous les commits :

git branch -b une-bonne-fonctionnalite
git pull dépôt master
git checkout master
git merge une-bonne-fonctionnalite
git commit -a
git push

0 votes

Si vous essayez de faire cela par rapport à GitHub, cet article vous guidera à travers cela. markosullivan.ca/how-to-handle-a-pull-request-from-github

0voto

James Killian Points 11

Je vais suggérer une réponse. Il s'agit de changer manuellement et de commettre sur la branche cible manuellement via Export, et pour utiliser un outil comme tortoise, l'export peut être vraiment un moyen efficace d'accomplir cela. Je sais que cela fonctionne très bien dans SVN, et jusqu'à présent dans certains tests de git a eu le même succès, tant qu'ils sont à 100% identiques, il ne devrait pas y avoir de résolution de conflit pour les futures fusion de branches de fonctionnalités.

Laissez-moi vous montrer un exemple:
c:/git/MyProject_Master/ModuleA/
c:/git/MyProject_FeatureA/ModuleA/

Supposons que nous voulions que tous les fichiers de la branche FeatureA de ModuleA soient dans la branche principale. Supposons un instant que c'est un projet énorme et qu'il y a d'autres modules, et nous savons par expérience que ModuleA n'a pas de dépendances qui pourraient causer un problème de compilateur ou de fonctionnalité avec les nouveaux changements de la branche de fonctionnalité. Sélectionnez le dossier ModuleA et choisissez Export depuis tortoise. Ensuite, choisissez ModuleA de la branche principale pour l'exporter. Enfin, vérifiez chaque fichier pour examiner les changements, en utilisant l'outil diff, assurez-vous que toutes les appels sont toujours compatibles. Assurez-vous que cela compile, testez-le minutieusement. Committez, push. Cette solution est éprouvée et efficace pour svn.

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