调整你的 Git 配置以适应多个用户 ID 的需要
创始人
2024-03-02 06:04:03
0

可以使用相同的机器用于工作和个人的 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?

includeIf.condition.path 变量,是 include 配置指令的一部分,允许你有条件地设置自定义配置。同时,自定义配置的路径也可以作为指令的一部分来设置。

这个指令支持三个关键字:gitdirgitdir/Ionbranch。我将简单解释一下 gitdir,我在上面的代码片段中使用了它。你可以在文档中了解其他两个关键词。

includeIf 指令中使用 gitdir 关键字会对模式进行条件检查。根据规则,如果当前工作目录与 gitdir 中指定的目录模式相匹配,那么它就会从给定的路径中选取配置。我将在配置片段上应用这个规则来展示它是如何被应用的。

在配置片段中,你可以看到一个简单的模式,~/,它与 gitdir 关键字一起使用。这个模式会被存储在 $HOME 环境变量中的值所替代。

如何使用它

如果你使用同一个系统在 GitHub 或 GitLab 上的开源项目上工作,并在工作中提交到 Git 仓库,你可以有两个顶级目录,比如 $HOME/priv_scm$HOME/work_scm。在这两个目录中,你可以有两个单独的 .gitconfig 文件,其中包含与你的 user.nameuser.email 相关的设置。然而,它们也可以包含存储在 $HOME 的全局 .gitconfig 中,它可以保存两个环境通用的所有自定义项。

这里是一个例子 $HOME/priv_scm/.gitconfig 的片段:

$ cat $HOME/priv_scm/.gitconfig
[user]
    name  = Ramanathan Muthiah
    email = <personal-mailid-goes-here>

有了这个配置,你就可以切换目录,并开始在开源项目上工作,而无需手动重置一些与 Git 相关的配置。这些更改会在主 .gitconfig 中借助 includeIf 条件指令自动处理。

Git 小贴士

希望这个小贴士能帮助你组织 Git 项目。你最喜欢的 Git 小贴士是什么?请在评论中分享吧!


via: https://opensource.com/article/20/10/git-config

作者:Ramanathan M 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Git

相关内容

开源中国完成股份制改造,主...
近日,OSCHINA(开源中国)与 Gitee 的主体公司已完成工...
2026-06-26 22:37:29
刚刚,百度开源拿下全球第一...
新智元报道 【新智元导读】百度开源Unlimited OCR!3...
2026-06-22 20:30:12
黑客组织正以空前规模对开源...
软件供应链攻击,即黑客在合法软件中植入恶意代码,曾是网络安全领域相...
2026-05-27 20:34:54
中国信通院联合产业方发起智...
据中国信通院消息,2026年5月7日,中国信息通信研究院联合产业各...
2026-05-08 13:16:09
英媒:中国AI全面赶超,人...
英国《经济学人》3月25日文章,原题:中国在人工智能人才竞争中遥遥...
2026-03-31 13:35:42
全球OCR新王来自中国开源...
西风 发自 凹非寺 量子位 | 公众号 QbitAI GitHub...
2026-03-31 07:56:09

热门资讯

为什么计量 IT 的生产力如此... 在某些行业里,人们可以根据一些测量标准判定一个人的生产力。比如,如果你是一个零件制造商,可以通过一个...
硬核观察 #885 苹果 AR... 苹果 AR 眼镜被无限期推迟据报道,由于技术上的挑战,苹果公司已经无限期推迟了其轻型增强现实(AR)...
8个有趣的Linux提示与技巧... 我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致,这里有8个我们从读者收到最有趣的提...
8 个提升你的隐私防护的开源密... 使用一些顶级开源密码管理器,确保你的登录凭证安全无虞。密码管理器是一项非常有用的实用程序。在你想寻找...
PHP最佳实践(译) 简介PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都...
值得收藏的 27 个机器学习的... 机器学习 ( Machine Learning ) 有很多方面,当我开始研究学习它时,我发现了各种各...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...