git-http-backend - 覆盖提交作者姓名

时间:2016-07-07 09:46:54

标签: git http environment-variables git-push author

这是我的测试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。我需要服务器端的覆盖)

1 个答案:

答案 0 :(得分:0)

我也喜欢这样,但是在推送到你的中央git存储库时,不可能更改提交(不会破坏它们)。请参阅this讨论。