我正在使用git-am在我的代码库中应用一个开源项目的diff文件:
git am -3 < /Downloads/refactorWork.diff
但是它有冲突,我需要解决它们;在解决冲突并暂存后,当我执行git am --continue时,出现以下问题:
fatal : empty ident name (for <>) not allowed
我在互联网上查找并发现这个问题似乎与我的问题相似,但我的用户名和电子邮件已经添加到全局和本地git目录中。以下是git config列表的输出:
rohan@~/Documents/libo : $ git config --global --list
user.email=rohankanojia420@gmail.com
user.name=Rohan Kumar
alias.l=log --oneline --graph --pretty
credential.helper=cache
虽然我通过首先提交暂存的更改,然后使用git am --skip
解决了这个问题,但我想知道这个错误是什么意思,以及我所做的是否正确,或者是否有更好的方法?
-3
选项回退到三路合并,最终生成带有冲突标记的文件供你解决。除此之外,你还可以使用--reject
选项来应用适用的补丁块,并为不适用的补丁块创建.rej
文件以供审查和手动应用。若没有任何选项,则在某些内容不能被应用时,apply
会失败。但在内部,git am
也使用git apply
。 - VampireGIT_AUTHOR_EMAIL
和/或GIT_AUTHOR_NAME
环境变量,可以使git am
在没有错误的情况下工作。 - Vampiregit am
而不是git apply
。此外,“创建补丁序列”按钮似乎创建普通补丁。(半相关): 我不确定我是否错过了什么,但这似乎是一个奇怪的设计决定。如果Tortoise通过GUI生成无法在不回退到git命令行的情况下使用的补丁,那么它似乎正在让人们失败。 - jrhformat-patch
来创建补丁,如果你使用“应用 Patch 串”,它将使用am
来回放这些补丁。如果你使用“创建 Patch 串”并使用“保存自头部以来的统一 diff”,它会创建一个纯 diff,并可以通过右键单击补丁文件并使用“查看/应用单个补丁”来回放。即使你只有一个format-patch
生成的补丁文件,你也应该使用“应用 Patch 串”。 - Vampire