Git: пустое имя идентификатора (для <>) не разрешено

Я применял файл diff проекта с открытым исходным кодом в верхней части моего репозитория с помощью git -am:

 git am -3 < /Downloads/refactorWork.diff

но у него были конфликты, и я должен был их разрешить; но после разрешения конфликтов и их постановки, когда я сделал git am - продолжу, я получил:

fatal : empty ident name (for <>) not allowed

Я посмотрел в Интернете и нашел этот, который, похоже, был похож на мою проблему, но мое имя пользователя и адрес электронной почты уже были добавлены в глобальные и локальные git каталоги. Вот вывод списка git config:

[email protected]~/Documents/libo : $ git config --global --list
[email protected]
user.name=Rohan Kumar
alias.l=log --oneline --graph --pretty
credential.helper=cache

Хотя я решил это, сначала выполнив поэтапные изменения, а затем используя git am --skip, мне интересно узнать, что означает эта ошибка, и был ли то, что я сделал, правильный способ сделать это, или есть лучший способ?

Ответ 1

Этот файл diff представляет собой простой diff, а не что-то, генерируемое git format-patch. A format-patch сгенерированный diff содержит информацию об авторе фиксации, дате автора, сообщении фиксации... и сохраняет эту информацию при создании фиксации.

У вашего простого diff нет этих данных, поэтому git am будет жаловаться, что он отсутствует.

Вместо этого вы должны использовать git apply, который предназначен для применения простых патч файлов, подобных вам в этом случае, которые будут применять только патч к рабочей группе (и индексировать, если вы сообщите об этом), но не создаете автоматическое совершение.