可以使用相同的机器用于工作和个人的 Git 提交,而无需手动重置你的配置。
Git 的 git config 命令可以让你为 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.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 = Ramanathan Muthiah
email = <personal-mailid-goes-here>
有了这个配置,你就可以切换目录,并开始在开源项目上工作,而无需手动重置一些与 Git 相关的配置。这些更改会在主 .gitconfig
中借助 includeIf
条件指令自动处理。
ADO对象: Connection Command Recordset Record Stream ASP支持的对象很多,可...
微信文件传输助手是微信电脑版与手机微信之间相互传输图片等文件的好工具,但很...
本文将研究 ES6 的 for ... of 循环。 旧方法 在过去,有两种方法可以遍历 javas...
一石激起千层浪,继中国区浩浩荡荡的大裁员告一段落之后,甲骨文并未因此收起手...
歌词编辑器 歌词编辑器 第一步:选择要播放的歌曲并播放 第二步:填写全部的歌词...
【排序算法】之lowb三人组冒泡、插入、选择 什么是lowb三人组 冒泡排序bubble so...
前言 相信大家都知道在IDE中代码的智能提示几乎都是标配,虽然一些文本编辑器也...
vbs:把一段文字中指定字符颜色变成红色的正则 functionc(Tstr,Word) Dimre Setre...
一、正则表达式概述 二、正则表达式在VBScript中的应用 三、正则表达式在VavaScr...
计算属性computed: 支持缓存,只有依赖数据发生改变,才会重新进行计算 不支持...