本地多个 Git 邮箱身份,commit 的时候不方便,怎么整?

以下是有关如何管理多个 Git 身份(例如个人、工作、client1、client2)的快速提示。

我将 Git 存储库分为三个级别。我的个人项目位于一个~/sources目录中。我所有的工作项目都位于~/work.这是第一级。

2 级是客户端,例如~/work/client1。当然,第 3 级是项目存储库:~/work/client1/foo-api.

这就是我的工作目录的组织方式:

  /Users/garrit/work    ├── client1    │   ├── foo-api    │   ├── foo-ios    │   └── foo-android    └── client2        ├── bar-ios        └── bar-middleware  

现在,假设client2我们需要使用与默认工作电子邮件不同的身份进行提交。除此之外,您可能还有一个用于您自己的项目的个人电子邮件地址。你是如何做到这一点的?

.gitconfig 包括

Git 的全局配置文件是~/.gitconfig.如果您曾经设置过如下参数git config user.name "Foo Bar":这就是它的最终结果。

.gitconfig 文件的一个很棒的功能是您可以有条件地包含其他配置文件,这就是诀窍。这是我的~/.gitconfig文件:

  [user]        name = Garrit Franke        email = garrit@slashdev.space      [includeIf "gitdir:~/work/"]        path = ~/.gitconfig-work      [includeIf "gitdir:~/work/client2/"]        path = ~/.gitconfig-client2      [includeIf "gitdir:~/sources/"]        path = ~/.gitconfig-personal      # ...  

默认情况下,我的姓名和电子邮件始终设置为我的个人身份。我还在这里存储了一些其他全局设置,但这些与本文无关。如果存储库位于该目录内,则会包含~/work一个名为的文件。~/.gitconfig-work这只是另一个 gitconfig 文件。这就是我的情况:

  [user]        name = Garrit Franke        signingkey = 12345678        email = garrit@work.de      [commit]        gpgsign = true  

我希望你能明白这是怎么回事。对于每个身份,您都保留一个单独的 gitconfig 文件并将其包含在 main 中~/.gitconfig。至关重要的是,这要求您按客户分组组织存储库。

这个技巧大大简化了我的项目启动过程。不再有客户提出“您忘记更新您的电子邮件地址”的请求!

展开阅读全文
发表评论

相关文章

  • 0