这是我的测试CGI脚本:
#!/bin/bash
echo "$(date) - REQUEST_METHOD[$REQUEST_METHOD] \
GIT_COMMITTER_NAME[$GIT_COMMITTER_NAME] \
GIT_COMMITTER_EMAIL[$GIT_COMMITTER_EMAIL] \
REMOTE_USER[$REMOTE_USER] \
GIT_AUTHOR_NAME[$GIT_AUTHOR_NAME] \
GIT_AUTHOR_EMAIL[$GIT_AUTHOR_EMAIL]" >> /tmp/git_cgi_test.log
/usr/lib/git-core/git-http-backend
在/tmp/git_cgi_test.log中输出“git push”:
Thu Jul 7 11:07:28 CEST 2016 - REQUEST_METHOD[GET] GIT_COMMITTER_NAME[foo] GIT_COMMITTER_EMAIL[foo@exemple.loc] REMOTE_USER[auth_basic_user] GIT_AUTHOR_NAME[bar] GIT_AUTHOR_EMAIL[bar@exemple.loc]
Thu Jul 7 11:07:28 CEST 2016 - REQUEST_METHOD[POST] GIT_COMMITTER_NAME[foo] GIT_COMMITTER_EMAIL[foo@exemple.loc] REMOTE_USER[auth_basic_user] GIT_AUTHOR_NAME[bar] GIT_AUTHOR_EMAIL[bar@exemple.loc]
=>似乎在CGI脚本中设置和显示Web服务器环境变量。
裸机git repo上的“git log”:commit 688a98573c5a7559d0fdfb7ff823add3ba0e3a17
Author: remote_os_user <remote_os_user@remote_os_hostname>
Date: Thu Jul 7 11:07:22 2016 +0200
the commit comment
...
=&GT;既不是“foo”也不是“bar”也不是“auth_basic_user”,而是“remote_os_user”:(
==&GT;必须为git-http-backend设置哪些环境变量来覆盖最终裸git仓库中的作者名称?
(我不控制远程贡献者笔记本电脑上的user.name或user.email。我需要服务器端的覆盖)