Linux|如何管理多个Git身份

78 阅读2分钟

摘要

关于如何管理不同项目和多个Git身份。

作为一名通用软件开发者,我经常发现自己在处理各种各样的项目,每个项目都有自己的要求和期望。这包括为个人、工作和客户项目管理不同的Git身份。以下是我组织Git仓库以简化这一过程的方法。

目录组织

我将我的项目分为三个层级:

  1. 个人项目:这些存放在 ~/sources 目录下。
  2. 工作项目:所有的专业项目都保存在 ~/work 目录中。
  3. 客户特定项目:这些进一步组织在 ~/work 下的各自客户目录中,例如 ~/work/client1~/work/client2

例如,client1的结构可能如下所示:

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

.gitconfig 包含

Git的全局配置文件 ~/.gitconfig 是通常存储 user.nameuser.email 等设置的地方。然而,.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

# ...

默认设置反映了我的个人身份。然而,对于每个工作或客户特定的身份,我维护一个单独的 gitconfig 文件,当在相应的目录中工作时,它会在主要的 ~/.gitconfig 中被包含。

例如,我的 ~/.gitconfig-work 可能是这样的:

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

[commit]
    gpgsign = true

这种方法确保了我可以在不同项目之间轻松切换身份,而无需每次都手动更新我的Git配置。

好处和简化

通过以这种方式组织我的仓库,并利用 .gitconfig 文件中有条件的包含,我大大简化了新项目的启动过程。它消除了忘记更新电子邮件地址的常见问题,这是一个至关重要的细节。

本文由mdnice多平台发布