J'appliquais un fichier diff d'un projet opensource au dessus de mon dépôt en utilisant git-am:
git am -3 < /Downloads/refactorWork.diff
mais il y avait des conflits et je devais les résoudre; mais après avoir résolu les conflits et les avoir mis en scène, quand je l'ai fait, je continue - j'ai obtenu:
fatal : empty ident name (for <>) not allowed
J'ai regardé sur Internet et trouvé cela qui semblait être semblable à mon problème, mais mon nom d'utilisateur et mon adresse électronique étaient déjà ajoutés dans des répertoires git globaux et locaux. Voici la sortie de la liste de configuration git:
rohan@~/Documents/libo : $ git config --global --list
[email protected]
user.name=Rohan Kumar
alias.l=log --oneline --graph --pretty
credential.helper=cache
Bien que j'aie résolu ce problème en validant d'abord les modifications étalonnées, puis en utilisant git am --skip
, j'aimerais savoir ce que signifie cette erreur et si ce que j'ai fait était la bonne façon de le faire ou s'il existe un meilleur moyen?
Ce fichier diff est un diff clair, pas quelque chose généré par git format-patch
. Un diff généré par format-patch
contient des informations sur l'auteur de la validation, la date de l'auteur, le message de validation, ... et conserve ces informations lors de la création de la validation.
Votre diff clair ne dispose pas de ces informations, donc git am
se plaindra de le manquer naturellement.
Vous devriez plutôt avoir utilisé git apply
qui est censé appliquer des fichiers de correctif simples, comme vous le faites dans ce cas, qui appliquera uniquement le correctif à la structure de travail (et à l’index si vous le indiquez), mais ne crée pas de validation automatiquement.
Déplacé du commentaire à la réponse acceptée
Lorsque vous cliquez sur "Enregistrer les différences unifiées" dans TortoiseGit, vous devez cliquer avec le bouton droit sur le fichier .diff
ou .patch
créé et sélectionner TortiseGit→Review/apply single patch
au lieu de Apply Patch Serial...
.
Placez le fichier diff à la racine du dossier auquel les fichiers auxquels vous souhaitez appliquer le correctif, en premier.
Utilisation,
git apply -3 patchName.patch
lorsque vous rencontrez des conflits, ouvrez votre outil mergtool et résolvez-les
git mergetool
c'est tout :)