281

我有使用 Chef + 一些临时 bash 脚本一起引导的应用程序服务器。问题是,当我想在这些应用服务器之一上运行更新时,我得到:

19:00:28: *** Please tell me who you are.

Run

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

git pull origin master每次更新应用服务器时,我真的需要设置这个来做一个简单的事情吗?无论如何要覆盖此行为,以便在未设置名称和电子邮件时不会出错?

4

23 回答 23

318

当我调用 PHP 脚本initcommitgit 时,我花了很多时间在上面。我发现工作流程应该是:

  1. git init
  2. git config user.name "someone"
  3. git config user.email "someone@someplace.com"
  4. git add *
  5. git commit -m "some init msg"

如果你交换 [23] 和 1,配置将根本不起作用。

我希望这会有所帮助。

于 2013-09-24T03:06:38.650 回答
67

而不是做 a git pull,你可以这样做:

git fetch
git reset --hard origin/master

这些都不需要您配置您的 git 用户名/电子邮件。

这将破坏任何未提交的本地更改/提交,并使您的 HEAD 指向提交(而不是分支)。但是对于应用服务器来说,这些都不应该是问题,因为您不应该进行本地更改或提交到该存储库。

于 2013-07-18T02:40:56.330 回答
37

它对我有用,试试这个..你需要为你的终端配置远程访问。

     git config --global user.name "abc"
     git config --global user.email "abc@example.com"
于 2017-05-01T11:13:00.950 回答
35

如果您使用的是 sourcetree:存储库 -> 存储库设置 -> 高级 -> 取消选中“使用全局用户设置”框

对我来说很好。

于 2013-08-13T06:56:14.983 回答
12

更新您的引导过程以创建${HOME}/.gitconfig具有正确内容的文件,或从某处复制现有文件。

于 2012-07-25T20:06:47.867 回答
12
git config user.email "insert github email here"
git config user.name "insert github real name here"

这对我很有用。

于 2017-06-20T23:08:51.877 回答
6

就我而言,正如乍得上述所说,我在“电子邮件”一词上缺少“e”,但我认为你的情况并非如此。请点击以下命令以查看是否一切都按预期进行。

git config -l
于 2018-06-23T20:43:53.387 回答
6

它无法自动检测电子邮件地址。

默认情况下,它需要您的系统用户名,例如abc@xyz.none.

所以你需要像下面这样设置你的电子邮件:

git config user.email "someone@gmail.com"

设置电子邮件后,您可以运行 git 命令并提交您的更改。

  1. 混帐初始化
  2. 混帐添加 *
  3. git commit -m "一些初始化信息"
于 2020-01-05T09:32:25.837 回答
4

我也遇到了同样的问题,并通过添加默认名称和电子邮件存储库设置来解决它。

正如多伦建议的那样——

如果您使用的是 sourcetree:存储库 -> 存储库设置 -> 高级 -> 取消选中“使用全局用户设置”框。

添加默认名称和电子邮件地址。

于 2017-03-28T18:29:41.003 回答
4

你必须这样写你的电子邮件

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

然后:写用户名

 git config --global user.name "Your Name"

之后弹出窗口将出现

为您想要贡献的帐户USERNAME 和 EMAIL

于 2019-03-04T15:54:13.490 回答
3

对我来说,问题是网络连接,一旦我重新连接到我的 wifi,它就可以获取详细信息并毫无问题地提交。

于 2017-12-08T21:38:07.027 回答
2

我将此视为错误的错误消息:在 Perl CGI 进程(从 gi​​thub 自动部署的 webhook)中,
git pullcmd 行工作正常失败,并出现上述错误。
git pull

做一个git status确定的冲突文件。排序解决了这个问题。

当我更改一些配置设置时,问题再次出现。

这一次,设置 $HOME 和 $USER 环境变量修复了它(在 CGI 进程中默认未设置)

于 2014-09-10T20:21:52.307 回答
2

每次我更新应用服务器时,我真的需要设置这个来做一个简单的 git pull origin master 吗?无论如何要覆盖此行为,以便在未设置名称和电子邮件时不会出错?

它只会询问一次,并确保将这台机器的 rsa 公钥添加到您尝试提交或传递拉取请求的 github 帐户中。

可以找到更多信息:这里

于 2013-01-23T10:44:52.497 回答
2

我使用 Jenkins 并在尝试执行发布(需要 git 提交)时遇到了这个问题。为了解决这些问题,我需要添加一个自定义用户名/电子邮件地址(见图)自定义用户名/电子邮件地址,这确保了在签出代码时,它在执行发布时使用了我的构建用户的名称/电子邮件地址。请注意,此配置可从 Jenkins Multibranch Pipeline 项目配置中获得。

于 2019-04-01T16:19:50.053 回答
2

看一下配置文件。

存储库 > 存储库设置 > 编辑配置文件。

检查该[user]部分是否存在。如果缺少用户部分,请添加它。

例子:

[user]
name = "your name"
email = "your email"
于 2016-01-08T08:08:30.207 回答
2

我使用 heroku cli 1. 必须使用所有用户名和用户电子邮件

$git config --global user.email .login 电子邮件。

$git config --global user.name .heroku 名称。

  1. git pull [git 网址]
  2. 混帐初始化
  3. 混帐添加 *

    5 git commit -m "在配置用户名后,用户邮箱"

  4. git push heroku 大师

于 2018-08-27T23:04:30.227 回答
2

git pull不应该要求这个。但是,如果拉取导致合并冲突,那么它似乎是必要的。

于 2019-05-09T12:26:42.610 回答
1

我在尝试提交一些文件时遇到了这个错误消息。

简单地运行git fetch然后再次尝试我的提交对我有用。

于 2015-06-11T07:11:12.293 回答
1

要为此/当前 repo 设置配置,只需删除 --global 并设置名称/电子邮件,如下所示:

$ git config user.name "John Doe" 
$ git config user.email "JohnDoe@gmail.com" 
于 2021-08-03T18:45:09.140 回答
1

恕我直言,解决此错误的正确方法是配置您的全局 git 配置文件。

为此,请运行以下命令:git config --global -e

将出现一个编辑器,您可以在其中插入默认的 git 配置。

这里有一些:

[user]
    name = your_username
    email = your_username@users.noreply.github.com 
[alias]
    # BASIC
    st = status
    ci = commit
    br = branch
    co = checkout
    df = diff

有关更多详细信息,请参阅自定义 Git - Git 配置

当您看到类似的命令时,git config...

$ git config --global core.whitespace \
    trailing-space,space-before-tab,indent-with-non-tab

...您可以将其放入您的全局 git 配置文件中:

[core]
   whitespace = space-before-tab,-indent-with-non-tab,trailing-space

对于一次性配置,您可以使用类似git config --global user.name 'your_username'

如果您没有全局设置 git 配置,则需要为您在本地使用的每个 git 存储库都这样做。

user.name 和 user.email 设置告诉 git 你是谁,所以后续git commit命令不会抱怨,*** Please tell me who you are.

很多时候,git 建议你运行的命令并不是你应该运行的。这一次,建议的命令还不错:

$ git commit -m 'first commit'

*** Please tell me who you are.

Run

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

提示:在我非常熟悉 git 之前,备份我的项目文件——在运行建议的 git 命令和探索我认为可行的东西之前——多次保存了我的培根。

于 2019-09-10T17:00:12.863 回答
0

如果您发现旧的默认行为有用(即使用本地用户名和主机名作为作者身份进行提交,而不是识别您的人),您可以运行:

git config --global user.name "$USER" && git config --global user.email "$USER@$HOSTNAME"
于 2021-08-18T08:21:19.373 回答
-1

要修复我使用: git config --global user.email "you@example.com" 并且有效。

user.mail 不行,可能需要输入 E. Typo 吗?

于 2018-05-12T17:50:28.323 回答
-5

那是一个错字。您不小心设置了“user.mail”而没有“ e ”。通过在全局配置中设置“user.email”来修复

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

在这里找到解决方案

https://stackoverflow.com/a/14662703

于 2015-09-04T06:09:30.903 回答