我有一个有多个用户的 Git 存储库。当他们推送时,我是否可以从客户端命令行读取参数?例如,用户名和密码?
我在我的 bash 脚本中尝试过read
,但它不起作用。我无法访问STDIN
。
如何在 Git 挂钩(更新)中从客户端命令行读取内容?
不,Git 不进行任何身份验证。(请参阅“分布式版本控制系统和企业 - 一个好的组合? ”)
您可以从 https 会话或 ssh 会话中获取用户 ID(如果~git/.ssh/authorized_keys
文件包含该信息):这就是gitolite所做的:请参阅“ gitolite 之类的程序如何工作? ”。
你肯定不会得到密码。曾经。(这与 git 或 gitolite 无关)。
gitolite 将依次调用 git 本身(如果它授权 clone/push/pull 命令),但 git 将再次幸福地不知道请求所述克隆/pull/push 的用户 ID:它会简单地执行它。