跳至主要內容

项目隔离,不同的项目使用不同的 Git 配置

bbruceyuan大约 2 分钟git

适应场景

  • 情况 1:你可能有多个邮箱,你希望项目 A 用邮箱 A,项目 B 用邮箱 B。很直观的做法就是在每个不同的项目中设置不同的邮箱。每次 git clone xxx 项目之后,git config user.name xxxgit config user.email xxx,但是每个项目都要自己设置就非常的麻烦。
  • 情况 2:你同时有公司的项目和自己的项目,希望公司的项目用公司邮箱,自己的项目用自己的邮箱,那么这种情况下一般会先设置 globalnameemail为公司邮箱,固定某个文件夹(personal_projects)设置为自己的邮箱。这种方法的优点是不需要在每个仓库中单独设置 Git 配置,而且可以轻松地管理多个项目或文件夹的不同 Git 身份。

配置步骤

我们可以使用 Git 的条件包含(conditional includes)功能来为特定文件夹设置不同的 user.nameuser.email

  1. 首先,全局 Git 配置中设置默认的 user.nameuser.email(如果还没有设置的话):
git config --global user.name "bbruceyuan_glocal"
git config --global user.email "bbruceyuan_glocal.email@example.com"
  1. personal_projects 文件夹中创建一个 .gitconfig 文件:
cd path/to/personal_projects
touch .gitconfig
  1. 编辑 personal_projects/.gitconfig 文件,添加以下内容:
[user]
    name = bbruceyuan
    email = bruceyuan@mail.com
  1. 在全局 .gitconfig 文件中(通常位于 ~/.gitconfig)添加条件包含配置:
[includeIf "gitdir:/path/to/personal_projects/"]
    path = /path/to/personal_projects/.gitconfig

注意:

  • 路径必须以斜杠 / 结尾。
  • 路径可以是绝对路径 /path/to/personal_projects/
  • 路径可以是相对路径,例如 ~/personal_projects/person/

这样设置后,Git 将在 personal_projects 文件夹及其子文件夹中使用特定的 user.name (bbruceyuan) user.email (bruceyuan@mail.com),而在其他地方使用全局设置。