2017-10-09 2 views
1

Comment fusionner l'ancien code de validation en HEAD? Si je veux fusionner le fichier complet de test.js à commit hash e123ee12 dans HEAD test.js.Git ajouter du code à partir de l'ancien commit

J'essaie d'utiliser la sélection de cerises mais s'il y a beaucoup de validation avant de devoir choisir une à une.

J'essaie aussi de checkout au e123ee12 et ajoute une ligne vide puis valide et reviens à master et fusionne le commit. Mais il fusionnera seulement la ligne que j'ajoute, ne fusionnera pas toute la ligne au maître.

Comment faire pour fusionner tous les fichiers à l'ancienne validation en master?

+2

Copie possible de [Réinitialiser ou rétablir un fichier spécifique à une révision spécifique en utilisant Git?] (Https://stackoverflow.com/questions/215718/reset-or-revert-a-specific-file-to-a- specific-revision-using-git) –

+0

C'est différent. –

+0

@ChienLee: En quoi ce doublon est-il différent? Je vois exactement la même question ... – rodrigo

Répondre

1

Vous pouvez essayer de générer un patch from that old commit (y compris pour a single file)

git format-patch -1 <sha> -- aFile 

ensuite l'appliquer à votre tête actuelle

git am -3 < file.patch 

Note: pour plusieurs commits, vous pouvez cherry-pick a range of commits.

+0

pourquoi le 'format-patch -1' alors' git am -3' pas 'git am -1' –

+0

@ChienLee le -3 si pour faire une fusion à trois voies et n'a rien à voir avec le -1 (patch sur un commit uniquement): '- ': Préparez les correctifs à partir du plus haut ''. – VonC

+0

je faisais ce qui suit 'format patch git -1 e123ee12' il' 0001- générer .patch' puis 'git checkout master' alors' am git -3 0001- .patch' –