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

来源: 投稿
2024-04-02 15:10:00

以下是有关如何管理多个 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。至关重要的是,这要求您按客户分组组织存储库。

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

原文:https://garrit.xyz/posts/2023-10-13-organizing-multiple-git-identities

展开阅读全文
点击加入讨论🔥(3) 发布并加入讨论🔥
3 评论
25 收藏
分享
返回顶部
顶部