Git 配置区分用户&目录

Published on

Git配置不同用户主要通过局部配置(针对单个项目)、includeIf(按目录自动切换)或SSH Key(多平台账号)来实现。常用方式是在项目根目录使用 git config user.name/email 覆盖全局设置,或在 .gitconfig 中使用 includeIf 针对特定文件夹目录配置不同的用户身份。

单项目单独配置(局部配置)

适用于不同项目使用不同账号,这是最直接的方法。

  1. 进入项目根目录。

  2. 运行命令(不加 --global):

    git config user.name "你的用户名"
    git config user.email "你的邮箱"此配置仅对当前项目有效,存储在 .git/config。 
    

按目录自动切换(includeIf - 推荐)

适用于工作项目和个人项目分开存放,实现自动化配置。

  1. 在用户主目录创建不同的 .gitconfig 文件(例如 .gitconfig-work 和 .gitconfig-personal)。

  2. 编辑全局文件 ~/.gitconfig,添加如下内容:

    # 默认配置
    [user]
        name = Personal
        email = personal@email.com
    
    # 工作项目目录使用另一个配置文件
    [includeIf "gitdir:~/work/"]
        path = ~/.gitconfig-work
    
  3. 在 ~/.gitconfig-work 中写入工作配置:

    [user]
        name = WorkName
        email = work@company.com
    

多平台SSH密钥(针对GitHub/GitLab/Gitee)

适用于同一个电脑登录多个账号,需生成不同SSH Key。

  1. 生成不同的SSH Key:

    ssh-keygen -t rsa -C "user1@email.com" -f ~/.ssh/id_rsa_personal
    ssh-keygen -t rsa -C "user2@email.com" -f ~/.ssh/id_rsa_work
    
  2. 配置 ~/.ssh/config:

    # Personal
    Host github.com
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_rsa_personal
    
    # Work
    Host gitlab.work.com
        HostName gitlab.work.com
        User git
        IdentityFile ~/.ssh/id_rsa_work
    
  3. 上传公钥到相应的平台(~/.ssh/id_rsa_xxx.pub)

查看与修改

  • 查看当前项目配置:git config --list。
  • 查看全局配置:git config --global --list。
  • 修改全局用户名:git config --global user.name "New Name"