web-dev-qa-db-fra.com

git: nom d'identifiant vide (pour <>) non autorisé

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?

23
Rohan Kumar

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.

20
Vampire

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.

0
izogfif

Utilisation,

git apply -3 patchName.patch

lorsque vous rencontrez des conflits, ouvrez votre outil mergtool et résolvez-les

git mergetool

c'est tout :)

0
Savindya A