【问题标题】:git pull issue without user name没有用户名的 git pull 问题
【发布时间】:2019-01-07 10:30:38
【问题描述】:

我在 server-1/repo1 上托管了一个第三方项目。 这个 third_party 项目作为 ExternalProject 添加到 repo2 cmake(真实项目)中。 repo2 是我们的工作。我们的构建环境是基于 docker 的。 在 Docker 内部,我可以根据 repo2 cmake 中的 ExternalProject 配置克隆 repo1。然而,外部项目的 git pull 又名“UpdateCommand”失败了。它失败了,因为我没有在 docker 中设置 git“user.name”和“user.email”。根据我的想法,我不需要 git "user.name" 等在 docker 中为第三方 repo 配置。

git fetch 在 docker 中工作。 git pull 将添加合并提交,这可能就是它需要 git "user.name" 等的原因。为了避免这种情况,我尝试了

git pull --no-commit,

但仍然陷入这个问题。

有人有见解吗? Docker 内用户的“用户名”是“用户”,而 docker 用户“用户”没有电子邮件。

git pull 上的错误:

请告诉我你是谁。

运行

git config --global user.email "you@example.com"

git config --global user.name "你的名字"

设置您帐户的默认身份。省略 --global 来设置 身份仅在此存储库中。

致命:不允许为空的身份名称(对于 )

【问题讨论】:

  • 您只需提供任何姓名和电子邮件地址,s.t. git 可以将该信息附加到提交等。你甚至可以选择“you@example.com”和“Your Name”。

标签: git


【解决方案1】:

为了提交,您必须提供您的 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 选项,则只需执行一次。

【讨论】:

  • 谢谢。我看可能没有其他出路了。为了解决这个问题,我在 CMAKE 的 ExternalProject_Add Config 中添加了 GIT_CONFIG 选项,并提供了一个虚拟用户名/电子邮件。
【解决方案2】:

如果您想使用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 只是切换到指定的提交,无论代价如何:丢弃工作树更改,如果它们妨碍了未版本化文件,则覆盖它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-03
    • 2013-01-15
    • 2018-05-01
    • 2013-11-13
    • 2019-04-03
    • 2015-02-03
    • 2018-06-27
    • 2021-01-27
    相关资源
    最近更新 更多