如何跟踪多个用户、一个通用登录名和一个共享工作目录的Git提交



下面是一个场景:一台Windows PC正在运行自动硬件测试的测试软件。控制测试的代码在Git存储库中进行管理。有一个单一的、通用的登录,其密码为所有测试操作员所知。

我该如何设置它,以便当用户想要进行提交时,它会询问他们的用户名和电子邮件,或者他们可以在每次提交时提供用户名和电子邮件?我们需要追踪是谁做出了改变。有时热更改是必要的,我们希望确保所有影响测试的文件的状态都保留在存储库中。

请不要建议对基本配置进行更改,也不要建议每个用户在一个单独的目录中工作,然后进行合并——这些工作流将无法满足测试的需要。常见的登录是因为在用户之间切换的过程会关闭运行测试的软件,并可能导致损坏或测试失败。如果没有解决方案,我们将被迫恢复到SVN。。。没有人想要那样。

您可以在每次运行git commit时指定作者姓名和电子邮件,如下所示:

git -c user.name='Alex Court' -c user.email=alex@example.com commit

您可能需要确保您的.gitconfig文件没有配置任何名称或电子邮件,这样,如果有人忘记了,git就不会使用这些名称或电子邮件。或者,您可能想要编写一个包装器脚本,以更交互式的方式提示用户。

@JohnZwinck的答案有效,另一个有不同小不便的选择是让人们做,例如

export GIT_COMMITTER_NAME='John Kugelman' GIT_COMMITTER_EMAIL=johnk@example.com

您可以在登录配置文件中设置一个名为hi,im的shell函数,从列表中设置这些函数,比如(手指到文本框(:

hi,im() { match=`grep "$*"` ~/namelist
local nmatch=`printf %s "$match"|wc -l`
test $nmatch = 1 
|| { echo "$match"; echo need one match for "$*" in ~/namelist; exit; }
eval $match
}

其中CCD_ 4包含如上所述的导出。如果你是唯一的johnk,那么在开始跑步时你就只能是hi,im johnk。在提示字符串中包含$GIT_COMMITTER_NAME,最简单的方法是export PS1='$GIT_COMMITTER_NAME$ ',在每次提示时都包含当前人员的姓名作为提醒。

然后,如果提示中有您的姓名,您可以照常操作,否则hi,im jthill

相关内容

最新更新