在我们的项目中,除了开发人员特定的文件夹之外,我们还有一个由多个开发人员使用的公共文件夹。偶尔,有人必须在这个公共文件夹中进行更改。此公用文件夹中的git配置没有设置user.name和user.email字段。
因此,只要开发人员从公共文件夹进行提交,预提交挂钩就会提示开发人员的ID,它会在另一个脚本的帮助下自动确定用户名和电子邮件。不幸的是,Git为当前提交选择了以前的用户名和电子邮件。例如,请考虑以下方案。
看起来git已经决定在调用pre-commit钩子之前使用什么用户名和密码。有什么方法可以解决这个问题吗?
这是我尝试过的预提交钩子:
#!/bin/sh
dev_name=""
dev_email=""
git config --remove-section user #To remove any entry that exists in the config file
read -p "[pre-commit hook] Shared repo - please enter your ID:" this_id
#Call the script that determines user name and password from $this_id
#Update git config with the current user's info
git config user.name "$dev_name"
git config user.email "$dev_email"