以下是有关如何管理多个 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 = [email protected]
[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 = [email protected]
[commit]
gpgsign = true
我希望你能明白这是怎么回事。对于每个身份,您都保留一个单独的 gitconfig 文件并将其包含在 main 中~/.gitconfig
。至关重要的是,这要求您按客户分组组织存储库。
这个技巧大大简化了我的项目启动过程。不再有客户提出“您忘记更新您的电子邮件地址”的请求!
原文:https://garrit.xyz/posts/2023-10-13-organizing-multiple-git-identities