让我先说我是一个巨大的Git(和Ubuntu)菜鸟。我会尝试尽可能清楚地解释我的问题,但我发现这很难,因为我不确定我在做什么,或者我是否正在使用正确的方法。
情况如下:
我有一个带有裸仓库的远程Ubuntu服务器(/opt/git/repo.git)。我的服务器上有两个用户:bram
和test
,两者都在组git
中。 Git
具有对目录的写访问权。两个用户都使用git config --global
配置了不同的名称和电子邮件。 /home/bram/.gitconfig的内容:
[user]
name = Bram Van der Sype
email = ...
[core]
editor = vim
/home/test/.gitconfig的内容
[user]
name = Test test
email = ...
在我的本地计算机上(Windows 7)我有2个repo克隆:一个实际的开发仓库,用bram
签出,第二个克隆(仅用于测试,在不同的目录中)已与test
签出。
我做了什么:
更改了第二个测试克隆中文件的某些行。然后我在本地提交这些行并将它们推送到原点(使用SSH,我被要求提供test
密码)。我切换到实际的开发目录,做了git pull origin master
并打开了更改的文件。我看到测试目录中已完成更改的行。然后,我执行git log -2
和git blame index.php
,希望看到与test
关联的user.name链接到提交和更改。
然而,我看到的唯一名称是bram
。
我想要什么?
能够看到谁做了实际的提交。这是我可以用gitosis做的事情(我在google搜索时看到的东西)?我配置错了吗?我是否需要从另一台机器/ Windows用户帐户提交?欢迎任何帮助,说明或文档参考!
答案 0 :(得分:1)
你确定,在两个回购中都有不同的设置,我的意思是
$TEST_REPO/.git/config
和$BRAM_REPO/.git/config
[user]
name = Name
email = email@address.com
...
答案 1 :(得分:1)
提交更改时,您需要以该特定用户身份登录。谁克隆了回购并不重要。我怀疑你在更改测试仓库时登录了bram。