2012-07-25 109 views
136

我有使用Chef +一些ad-hoc bash脚本自举的app服务器。问题是,当我想对这些应用程序服务器之一运行的更新,我得到:Git:“请告诉我你是谁”错误

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

Run 

    git config --global user.email "[email protected]" 
    git config --global user.name "Your Name" 

我真的需要设置这个做我每次更新应用服务器时,一个简单的git pull origin master?有没有办法覆盖这种行为,所以当没有设置名称和电子邮件时它不会出错?

+2

从我遇到过的没有,但是我再看到只是添加您的姓名和电子邮件没有问题,即使他们只是假名称和电子邮件。 – sean 2012-07-25 19:08:42

+9

是的,你必须设置这些,如果“简单”的'git pull'要创建一个提交,因为它做了合并,例如。 – fork0 2012-07-25 20:08:59

+1

您描述了单向部署的场景。我不会添加凭据以避免任何自动提交。是的,你会看到这个错误的问题,但这将意味着有人在生产周围徘徊,手动更改文件触发合并。 – 2015-02-01 23:27:26

回答

7

更新您的引导进程以创建具有适当内容的${HOME}/.gitconfig或从某处复制现有的引导进程。

+1

要有默认设置是一个好的方面,+1 – antongorodezkiy 2014-02-23 03:05:43

0

我真的需要设置这个做我每次更新应用服务器时,一个简单的git拉出身高手?有没有办法覆盖这种行为,所以当没有设置名称和电子邮件时它不会出错?

它会问了一次,并且确保本机的RSA公钥到您尝试提交或通过拉请求您的github帐户添加。

更多这方面的信息,可以发现:Here

34

而不是做一个git pull的,你可以这样做:

git fetch 
git reset --hard origin/master 

无论这些都需要你来配置你的git的用户名/电子邮件。

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

+0

在这种情况下,git pull的automerge是危险的,最好是重置。 – Davisein 2014-11-21 11:30:04

+0

使用'git fetch && git reset --hard HEAD'会不会更好? – jacoor 2015-10-19 10:12:30

+0

@jacoor nope:'git reset --hard HEAD'只会抛弃你未修改的变更,它不会改变你的工作空间所基于的承诺(因为根据定义你已经在头上) – gfxmonk 2016-02-28 12:00:09

29

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

工作对我来说太棒了。

+0

在我的情况下,我不得不检查它,但无论如何!感谢您的帮助 – Karoly 2017-06-05 16:32:04

136

我花了很多小时,当我调用PHP脚本初始化和提交混帐。 ,我发现工作流程应该是:

1.git init 
2.git config user.name "someone" 
3.git config user.email "[email protected]" 
4.git add * 
5.git commit -m "some init msg" 

如果你换[23]和1,配置不会在所有的工作。

希望这会做一些帮助。

+1

我认为这是“正确”的良好实践方式:) – Greg 2014-08-30 20:32:50

+0

这是启动git存储库的正确做法。但更新回购@ gfxmonk解决方案更好 – Davisein 2014-11-21 11:28:40

+0

它的工作对我来说。谢谢 – 2015-12-16 16:38:36

0

我这是一个错误的错误消息:
git pull运行良好的CMD线
git pull在一个Perl CGI进程失败,出现上述错误(网络挂接到从GitHub自动部署)。

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

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

这个时候,设置$ HOME和$ USER ENV乏固定它(默认情况下未设置在CGI进程)

1

我就遇到了这个错误信息,同时试图去提交一些文件。

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

-7

这是一个错字。您意外设置了“user.mail”,并且没有“e”。通过设置与

混帐修复它 “的用户。Ë邮件”,在全局配置配置--global user.email “[email protected]

这里

找到解决方案

https://stackoverflow.com/a/14662703

+2

你在哪看到这个页面上没有'e'的''user.mail'? – 2015-09-04 14:42:52

0

看看配置文件。

版本库>版本库设置>编辑配置文件。

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

例子:

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

同样的问题与我同在,并通过添加默认名称和电子邮件库设置解决它。

由于多伦建议 -

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

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

9

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

 git config --global user.name "abc" 
    git config --global user.email "[email protected]" 
+0

对我不起作用 – jalal246 2017-11-14 18:13:48

+0

@JimmyJanson再试一次,Ii会完美的工作。 – 2017-11-30 04:32:33

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

这个工作对我来说太棒了。

1

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