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

时间:2012-07-25 19:04:05

标签: git

我有app服务器,我使用Chef +一些ad-hoc 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?无论如何都要覆盖此行为,以便在未设置名称和电子邮件时不会出错?

22 个答案:

答案 0 :(得分:194)

我花了很多时间来调用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,配置根本不起作用。

希望这会有所帮助。

答案 1 :(得分:42)

您可以执行以下操作,而不是执行git pull

git fetch
git reset --hard origin/master

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

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

答案 2 :(得分:31)

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

对我很有用。

答案 3 :(得分:22)

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

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

答案 4 :(得分:8)

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

答案 5 :(得分:5)

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

这对我很有用。

答案 6 :(得分:2)

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

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

因此,您需要按以下方式设置电子邮件:

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

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

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

答案 7 :(得分: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

有关更多详细信息,请参见Customizing Git - Git Configuration

当您看到类似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命令并浏览我认为有用的东西之前,对项目文件进行了备份-多次节省了培根。

答案 8 :(得分:2)

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

正如Doron所说 -

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

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

答案 9 :(得分:1)

  
    

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

  

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

可以找到有关此内容的更多信息:Here

答案 10 :(得分:1)

就我而言,正如乍得在上面所说,我在“电子邮件”一词上缺少“ e”,但您却并非如此。请点击以下命令,查看是否一切正常。

git config -l

答案 11 :(得分:1)

对我来说问题是网络连接,一旦我重新连接到我的wifi,它就可以获取细节并提交而没有任何问题。

答案 12 :(得分:0)

查看配置文件。

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

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

示例:

[user]
name = "your name"
email = "your email"

答案 13 :(得分:0)

我使用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 add *

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

  4. git push heroku master

答案 14 :(得分:0)

您必须这样写电子邮件

# create auxilliary columns
df1['ref'] = df1.index - pd.to_timedelta(df1.index.minute % 2, unit='m')
df1['ref2'] = df1.ref + pd.Timedelta(minutes=2)

df2['ref'] = df2.index - pd.to_timedelta(df2.index.minute % 2, unit='m')
df2.index.name = 'created_at_2'
df2 = df2.reset_index().set_index('ref')

# join on ref and select the relevant lines
x1 = df1.join(df2, on='ref', how='inner')
x1 = x1.loc[(x1.index <= x1.created_at_2)
            & (x1.created_at_2 - x1.index <= pd.Timedelta(minutes=2))]

# join on ref2 and select the relevant lines
x2 = df1.join(df2, on='ref2', how='inner')
x2 = x2.loc[(x2.index <= x2.created_at_2)
            & (x2.created_at_2 - x2.index <= pd.Timedelta(minutes=1))]

# concatenate the partial result and clean the resulting dataframe
merged = pd.concat([x1, x2]).drop(columns=['ref', 'ref2'])
merged.index.name = 'created_at'

然后:输入用户名

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

出现“弹出窗口”之后

USERNAME&EMAIL (用户名和电子邮件地址) 针对您要捐款的帐户

答案 15 :(得分:0)

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

答案 16 :(得分:0)

git pull不需要这样做。 但是,如果拉动导致合并冲突,则看起来很必要。

答案 17 :(得分:0)

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

只需运行git fetch然后尝试我的提交再次为我工作。

答案 18 :(得分:0)

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

执行git status标识了一个冲突文件。对它进行排序可以解决问题。

稍后当我更改了一些配置设置时,问题再次发生。

这一次,设置$ HOME和$ USER env vars修复了它(默认情况下在CGI进程中没有设置)

答案 19 :(得分:0)

要为此/当前存储库设置配置,只需删除 --global 并像这样设置名称/电子邮件:

$ git config user.name "John Doe" 
$ git config user.email "JohnDoe@gmail.com" 

答案 20 :(得分:-1)

要修复我使用:git config --global user.email&#34; you@example.com"和工作。

user.mail无法正常工作,需要输入E. Typo吗?

答案 21 :(得分:-6)

这是一个错字。你意外地设置了&#34; user.mail&#34;没有&#34; e &#34;。通过设置&#34;用户来修复它。 e mail&#34;在

的全局配置中

git config --global user.email&#34; you@example.com"

在此找到解决方案

https://stackoverflow.com/a/14662703