我在server-1 / repo1上托管了一个第三方项目。 该第三方项目在repo2 cmake中添加为ExternalProject(真实项目)。 repo2是我们的工作。我们的构建环境基于docker。 在Docker内部,我能够按照repo2 cmake中的ExternalProject配置克隆repo1。但是外部项目的git pull aka“ UpdateCommand”失败了。它失败了,因为我在docker中没有设置git“ user.name”和“ user.email”。按照我的想法,我不需要docker内部的git“ user.name”等配置来设置third_party存储库。
git提取在docker内部工作。 git pull将添加合并提交,这可能就是为什么它需要git“ user.name”等。为避免这种情况,我尝试了
git pull --no-commit,
,但仍属于该问题。
有人有见识吗? Docker内部用户的“用户名”是“ User”,而Docker用户“ User”没有电子邮件。
git pull
上的错误:
请告诉我你是谁。
运行
git config --global user.email“ you@example.com”
git config --global user.name“您的名字”
设置您帐户的默认身份。省略--global来设置 身份仅在此存储库中。
致命:不允许使用空的身份名称(用于)
答案 0 :(得分:0)
要提交,您必须提供name and email ID
只是为了将此信息附加到提交以供以后使用。
您首先运行以下命令:
git config --global user.name "John Doe"
此处是John Doe的一个示例。您必须提供您的姓名。然后运行:
git config --global user.email johndoe@example.com
此处的电子邮件ID应该是您的ID。然后尝试使用您的命令。
这里--global
是可选的。但是,如果您通过--global
选项,则只需执行一次。
答案 1 :(得分:0)
如果您想使用git
作为传递代码的方式,并且可以接受在目标存储库中进行的丢失更改(如果有),则可以:
if [ -e app ]; then
cd app
git fetch
git reset --hard origin/master
else
git clone GIT_URL app
fi
git pull
表示分支分支合并/重新分支。这就是git
希望您指定user.name
和user.email
的原因。
git reset --hard
尽管告诉git
不管成本如何都切换到指定的提交:丢弃工作树更改,覆盖未版本化的文件。