2013-06-08 4 views
0

Je travaille sur un projet Open Source utilisant Mercurial. J'ai fait un repo git dans le répertoire source et j'ai maintenant environ 40 commits.git: Comment appliquer les validations de l'ancienne version sur une nouvelle version du code source

Le projet a publié une nouvelle version du code source et je souhaite maintenant appliquer les validations que j'ai faites sélectivement.

Ce que je veux dire est, parmi les différents répertoires qui existent, je veux remplacer uniquement le répertoire src tout en ignorant tous les répertoires de la bibliothèque mises à jour (que je ne l'ai pas modifié en tout engagement de toute façon)

Chaque fois que je tente un git checkout -b <branch> -t <remote/branch> Je reçois une erreur indiquant que je dois déplacer ou supprimer des tonnes de fichiers existants

Comment puis-je procéder?

+0

vous pouvez essayer 'git stash && git checkout -b -t && git stash s'appliquent' – Rufinus

+0

Je suis un peu confus, comment avez-vous une" branche distante "si vous avez créé le git repo toi? Si vous le clonez quelque part, bien sûr ... Avez-vous utilisé un outil de conversion pour convertir un repo hg en un repo git? – torek

Répondre

0

git cherry-pick <commit> va appliquer le commit au dépôt courant. Utilisez git stash avant cette communication et git stash pop après cette commande, si vous avez des modifications non-planifiées.

+0

Cela rendra également 'git merge' impossible puisque les identifiants de commit seront différents ... n'est-ce pas? La fusion est une fonctionnalité très utile à avoir. Peut-il y avoir un moyen non-intrusif d'y parvenir? –

+0

@ user1761555 Pourquoi cela rendrait-il la fusion impossible? –

+0

http://stackoverflow.com/questions/881092/how-to-merge-a-specific-commit-in-git/881112#881112 ..J'ai peut-être mal compris –

Questions connexes