在共享用户帐户上处理git

时间:2013-06-12 19:29:29

标签: git commit root

我正在使用git来跟踪服务器上一系列系统配置文件的更改。这些文件归root帐户所有(出于各种内部企业原因,root是此框中唯一的帐户)。

有一个中央git服务器,该系统上所做的所有更改都被推送到。

我要做的是禁止git因为没有设置用户帐户而引发的警告。我们所做的是,任何在git控件下更改文件的人只需在提交时设置--author选项 - 但是,git仍会抱怨没有设置用户信息。

详细信息,确切的信息是:

[root@server ~]# git commit --author "Karunamon <karunamon@company.com>"
[master 491d9f8] File updated
 Author: Karunamon <Karunamon@company.com>
 Committer: root <root@server>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

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

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 file changed, 1 insertion(+), 1 deletion(-)

基本上,这是一个双重问题:

首先,是否有办法压制此警告消息?设置配置变量将以混乱的方式结束,因为会有很多人在根服务器下访问此服务器上的同一个存储库帐户。

我确实尝试使用环境变量(GIT_AUTHOR_EMAILGIT_AUTHOR_NAME等),但会出现相同的消息。

其次,是否有更好的方法(缺少涉及.rc文件的一些可怕的黑客并要求登录)设置用户名和电子邮件,以便我的用户不必添加每次提交都有一个--author标志?

环境变量选项本来是完美的 - 我可以让我的用户在登录时导出变量然后它们一直很好,直到下一次连接..但是git仍然抱怨。

2 个答案:

答案 0 :(得分:3)

尝试

git -c user.email="Karunamon <karunamon@company.com>" commit

这将在执行该命令时覆盖配置设置。

然后,您可以创建一个git别名/包装器,在执行时从本地env变量中插入该值。

答案 1 :(得分:0)

git -c user.email="karunamon@company.com" -c user.name="Karunamon" commit

那个适合我。它也需要user.name。