如何提示提交者名称和;来自Git Pre Commit Hook的电子邮件?

时间:2014-05-13 21:15:07

标签: git githooks

在我们的项目中,除了开发人员特定的文件夹之外,我们还有一个由多个开发人员使用的公共文件夹。偶尔,有人必须在这个公共文件夹中进行更改。此公用文件夹中的git配置没有设置user.name和user.email字段。

因此,只要开发人员从公共文件夹进行提交,预提交挂钩就会提示开发人员的ID,它会在另一个脚本的帮助下自动确定用户名和电子邮件。不幸的是,Git为当前提交选择了以前的用户名和电子邮件。例如,请考虑以下方案。

  1. 开发人员1尝试提交。预提交挂钩提示和开发人员1输入他的ID。 Git做了提交。当我检查提交历史记录时,用户名和电子邮件将是" unknown" (假设这是该文件夹中的第一个提交)。
  2. 开发人员2尝试在开发人员1之后提交。现在,提交历史记录将包含开发人员1的名称和电子邮件,供开发人员2提交。
  3. 看起来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"
    

0 个答案:

没有答案