2012-04-12 4 views
8

J'ai quelques commits que je ne veux pas dans mon projet, mais il y a un engagement basé sur eux que je veux dedans. Ceci est mon GitHub graphique « réseau » du référentiel (ASCII, comme je ne peux toujours pas poster des images):Comment puis-je ignorer les validations dans git?

[]--[]--[_] 
|  | 
|  ------->| 
---------->[·]--[·]--[*] 

(-> signifie une fusion)

Je veux supprimer les modifications apportées à la deux [·] valide, et basez le [*] sur le [_] ci-dessus. J'ai essayé de fusionner et de rebaser, mais ils appliquent les changements des commits non désirés. Est-ce possible? Désolé si je ne suis pas clair, l'anglais n'est pas ma langue maternelle. Merci d'avance.

Répondre

10

Je peux vous donner deux options:

  • Interactive rebasage (git rebase -i) vous présente une liste des commits, éditer cette liste changera le résultat de l'opération; vous permet de réorganiser, supprimer ou marquer ces commits pour des opérations diverses. Dans votre cas, vous pouvez redéfinir la branche de [*] en [_] et supprimer les lignes non désirées.

  • Cherrypick vous permet d'appliquer les changements d'un seul commit dans une autre branche. Dans votre cas, vous pouvez simplement choyer clavarder [*] dans la branche [_].

2

Vous pouvez vérifier votre _ et cherry pick le *. Si vous le souhaitez sur une branche séparée, vous pouvez commencer par le _ avant de faire cela.

Questions connexes