如何在一台电脑上使用多个git身份
这是一篇翻译的文章,以前遇到过类似的困惑,看到作者的介绍后感觉非常完美。
这里是一个关于如何管理多个 Git 身份的小技巧(例如,个人、工作、 client1、 client2)。
我把我的 Git 结构分为三级。
我的个人项目位于
~/source
目录中,我所有的工作项目都在工作中进行,这是第一级。
第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-work的示例:
[user]
name = Garrit Franke
signingkey = 12345678
email = garrit@work.de
[commit]
gpgsign = true
我希望你能明白。
License:
CC BY 4.0