Git:“请告诉我你是谁”错误


226

我有一些应用服务器,我可以使用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每次更新应用程序服务器时,是否真的需要将其设置为简单吗?无论如何,有没有要重写此行为,以便在未设置名称和电子邮件时不会出错?


3
从我遇到过的问题来看,但是再说一次,即使添加了您的姓名和电子邮件,即使它们只是假名称和电子邮件,我也认为没有问题。
肖恩

10
是的,例如,如果“简单” git pull要创建提交,则必须进行设置,因为它进行了合并。
fork0 2012年

1
您描述了单向部署的方案。我不会添加凭据以避免任何自动合并的提交。是的,您将看到此错误的问题,但这将意味着有人在生产环境中闲逛并手动更改文件以触发合并。
Alex Skrypnyk

Answers:


249

当我调用php脚本初始化并提交git时,我花了很多时间。我发现工作流程应为:

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,该配置将根本无法工作。

希望这会有所帮助。


这是初始化git存储库的正确做法。但对于更新回购@gfxmonk解决方案是更好
Davisein

您能否解释一下它是如何工作的以及为什么在执行此操作之前会出错?
Chinmaya B

1
您可以将--globalswitch 添加到git config命令,并为您的OS帐户执行一次。之后,无需执行步骤2-3。
x-yuri

50

除了执行git pull,您可以执行以下操作:

git fetch
git reset --hard origin/master

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

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


在这种情况下,git pull的自动合并很危险,最好进行一次重置。
戴维森,2014年

使用会更好git fetch && git reset --hard HEAD吗?
jacoor 2015年

@jacoor nope:git reset --hard HEAD只是丢弃您未完成的更改,它不会更改您的工作空间所基于的提交(由于定义,您已经在HEAD上)
gfxmonk 2016年

33

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

对我来说很棒。


就我而言,我不得不将其再次检查,但是无论如何!感谢您的帮助
-Karoly

32

它对我有用,请尝试执行此操作。您需要为终端配置远程访问权限。

     git config --global user.name "abc"
     git config --global user.email "abc@example.com"

10

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


9
git config user.email "insert github email here"
git config user.name "insert github real name here"

这对我来说很棒。


4

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

正如多伦建议的那样-

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

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


4

就我而言,如上所述,乍得在“电子邮件”一词上缺少“ e”,但您却并非如此。请按以下命令查看是否一切都按预期进行。

git config -l

4

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

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

然后:输入用户名

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

在弹出窗口之后

USERNAME和EMAIL 作为您要捐款的帐户



2

每次更新应用程序服务器时,是否真的需要对此设置进行简单的git pull origin master设置?无论如何,有没有要重写此行为,以便在未设置名称和电子邮件时不会出错?

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

可以找到更多有关此的信息:这里


1
链接已断开
爱丽丝·施瓦兹

2

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

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

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

这次,设置$ HOME和$ USER env vars修复了该问题(在CGI进程中默认未设置)



2

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

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

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

  1. git pull [git url]
  2. git init
  3. git添加*

    5 git commit -m“在配置user.name之后,用户电子邮件”

  4. git push heroku主


2

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



2

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

为此,请运行以下命令: 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 repo进行设置。

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命令并浏览我认为可行的事情之前,对我的项目文件进行了备份-多次节省了培根。


2

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

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

因此,您需要像下面这样设置电子邮件:

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

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

  1. git init
  2. git添加*
  3. git commit -m“一些初始化消息”

1

我在尝试提交某些文件时遇到了此错误消息。

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


0

要修复,我使用:git config --global user.email“ you@example.com”并可以工作。

user.mail没有工作,可能需要输入E. Typo?


我认为OP希望知道每次更新是否真的必要。
tbrk

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.