没有用户名的git pull问题

时间:2018-07-31 06:05:13

标签: git

我在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来设置   身份仅在此存储库中。

     

致命:不允许使用空的身份名称(用于)

2 个答案:

答案 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.nameuser.email的原因。

git reset --hard尽管告诉git不管成本如何都切换到指定的提交:丢弃工作树更改,覆盖未版本化的文件。