Comment puis-je appliquer les mecs rejetés après les avoir réparés?
J'essaye d'appliquer un patch à un fichier à l'aide de git apply
. L'ensemble de patch a échoué, j'ai donc utilisé git apply --reject
.
L'inspection de l'généré .rej
fichier m'a montré quel est le problème, maintenant que j'ai résolu le problème en le .rej
fichier.
Mais en essayant d'appliquer les .rej
fichier échoue avec le message d'
fatale: patch fragment sans en-tête à la ligne 2: ...
Est-il un moyen de ré-appliquer la .rej
fichier après avoir résolu les problèmes?
Ou dois-je modifier le patch d'origine et de ré-exécuter git apply
?
Ce serait un peu lourd, dans ce cas, depuis la mise à jour contient des correctifs pour des dizaines de fichiers et je ne veux pas git checkout
la appliqué des modifications afin de re-git apply
l'ensemble fixe de fichier de patch.
source d'informationauteur eckes
Vous devez vous connecter pour publier un commentaire.
De clarifier ce que @julien-squires a ditle problème est que le
.rej
fichiers sont manquants certaines choses mineures entrediff a/thefile...
et@@ -line/columns...
.ORIGINAL
.rej
fichierVous devez copier le a/b les noms de fichiers à partir de la
diff
ligne et les ajouter avec le changement des indicateurs ci-dessous, comme:Mis à JOUR
.rej
fichierEnsuite, vous pouvez appliquer la
.rej
fichiers comme un patch.J'ai eu ce problème récemment, lors de l'utilisation
git am --reject
pour appliquer un tas de patchs. La façon dont je me suis approché, il était de massage le.rej
en-tête de fichier en quelque chose depatch(1)
permettrait de reconnaître, avecet modifiés avec emacs (dont
diff-mode
sera mise à jour de la ligne de compte dans le tas comme vous modifier le patch) et appliqué avecpatch
.Mon flux de travail terminée par ressembler à ceci:
avec adapté macros de configuration dans emacs pour l'régulièrement des cas. Pas le plus élégant, mais il a travaillé.
Il n'y a aucun moyen d'éviter d'avoir à modifier manuellement les fichiers où il y a un
.rej
fichier. Vous avez dit que vous n'avez résoudre ce problème. Une fois que tous les.rej
questions ont été prises en charge, vous êtes prêt pourgit commit
.git apply --reject
enregistre encore un peu de temps dans cettegit apply --reject
va modifier les fichiers où il le peut.