当前位置: 首页 > 科技观察

调整您的Git配置以适应多个用户ID

时间:2023-03-22 12:11:18 科技观察

可以使用同一台机器进行工作和个人Git提交,而无需手动重置您的配置。Git的gitconfig命令允许您为Git设置存储库或全局选项。它有很多选项,其中之一,includeIf,当你在Git中扮演双重角色时非常方便,例如,如果你是一名全职开发人员并在业余时间为开源项目做贡献。在这种情况下,大多数人不想为两个角色使用相同的配置,或者至少,他们肯定希望保持配置的某些部分不同,尤其是当他们在两个角色计算机时间使用相同的装备时。这是我的情况,所以我在我的Git配置中保留了两组不同的邮件ID。这样,在我工作场所的项目存储库中提交使用我的办公室邮件ID,在我的个人GitHub帐户中提交使用我的个人邮件ID。下面是我的全局配置的一个片段(在$HOME/.gitconfig维护),我将在下面描述。[includeIf"gitdir:~/priv_scm/"]path=~/priv_scm/.gitconfig[includeIf"gitdir:~/work_scm/"]path=~/work_scm/.gitconfig什么是includeIf?includeIf.condition.path变量是include配置指令的一部分,允许您有条件地设置自定义配置。同时,自定义配置的路径也可以设置为指令的一部分。该指令支持三个关键字:gitdir、gitdir/I和onbranch。我将简要介绍我在上面的代码片段中使用的gitdir。您可以在文档中阅读其他两个关键字。在includeIf指令中使用gitdir关键字将有条件地检查模式。根据规则,如果当前工作目录与gitdir中指定的目录模式匹配,那么它将从给定路径中获取配置。我将在配置片段上应用此规则以展示它是如何应用的。在配置片段中,您可以看到一个简单的模式,~/,它与gitdir关键字一起使用。此模式将替换为存储在$HOME环境变量中的值。如何使用如果您使用相同的系统在GitHub或GitLab上处理开源项目,并在工作时提交到Git存储库,您可以有两个顶级目录,比如$HOME/priv_scm和$HOME/work_scm。在这两个目录中,您可以有两个单独的.gitconfig文件,其中包含与您的user.name和user.email相关的设置。但是,它们还可以包含存储在$HOME中的全局.gitconfig,它包含两种环境共有的所有自定义设置。这是$HOME/priv_scm/.gitconfig的示例片段:$cat$HOME/priv_scm/.gitconfig[user]name=RamanathanMuthiahemail=使用此配置,您可以切换目录无需手动重置一些与Git相关的配置,即可开始从事开源项目。在includeIf条件指令的帮助下,这些更改在主.gitconfig中自动处理。