学海无涯.

在VS Code不同项目之间如何切换Git账号

Cover Image for 在VS Code不同项目之间如何切换Git账号
xuehaiwuya
xuehaiwuya

在 VS Code 中切换 Git 账号是一个非常常见的需求,特别是当你同时拥有个人项目和工作项目时。

这个过程分为两个核心部分:

  1. 切换 Commit 的作者信息 (你的名字和邮箱,显示在提交记录里)。
  2. 切换远程仓库的认证凭据 (用于 git push/pull 时向 GitHub/GitLab 等平台验证你的身份)。

下面我将为你提供最清晰、最常用的几种方法。


方法一:针对单个项目进行切换 (最常用、最推荐)

这种方法不会影响你电脑上其他项目的配置,是隔离工作和个人项目的最佳实践。

1. 设置项目独立的作者信息

每个 Git 仓库都可以有自己独立的 user.nameuser.email

  1. 打开你的项目 in VS Code.
  2. 打开集成终端 (快捷键 Ctrl + \`` 或者 Cmd + ``)。
  3. 在终端中运行以下两条命令,将 Your Nameyour.email@example.com 替换成你这个项目想用的账号信息:
    git config user.name "Your Name"
    git config user.email "your.email@example.com"
    
    • 验证一下: 运行 git config --local --list,你应该能看到刚刚设置好的 user.name 和 user.email。

现在,你在这个项目中的所有新提交 (commit) 都会使用这套作者信息。

2. 处理远程仓库的认证

仅仅修改作者信息是不够的,当你推送到远程仓库 (如 GitHub) 时,Git 还需要验证你的身份。操作系统通常会缓存你第一次登录的凭据。

如果你使用 HTTPS 协议 (例如 https://github.com/...):

你需要清除操作系统中缓存的旧凭据。

  • 在 Windows 上:

    1. 打开 “控制面板”。
    2. 进入 “用户帐户” -> “凭据管理器”。
    3. 选择 “Windows 凭据”。
    4. 在列表中找到和你的 Git 仓库相关的凭据 (例如 git:https://github.com)。
    5. 点击它,然后选择 “删除”。
  • 在 macOS 上:

    1. 打开 “钥匙串访问” (Keychain Access) 应用。
    2. 在搜索框中输入 github.com (或者你的 Git 服务商地址)。
    3. 找到类型为 “互联网密码” (internet password) 的相关条目。
    4. 右键点击它,选择 “删除”。

操作完成后: 下一次你在 VS Code 的终端中执行 git push 时,系统会弹出一个登录窗口,或者终端会提示你输入用户名和密码/Token。这时,输入你新账号的凭据,系统就会缓存新的登录信息。


方法二:使用 SSH 密钥 (一劳永逸,适合管理多个固定账号)

如果你需要频繁地在固定的几个账号(比如个人账号和公司账号)之间切换,使用 SSH 是更专业、更方便的方法。

这个方法的核心是为每个账号生成一个独立的 SSH 密钥,然后通过一个配置文件告诉 Git 在连接不同仓库时使用哪个密钥。

1. 为新账号生成专属 SSH 密钥

  1. 打开终端 (可以在 VS Code 外的系统终端操作)。
  2. 运行以下命令,注意修改邮箱指定一个新的密钥文件名 (例如 id_rsa_work),避免覆盖你已有的默认密钥。
    ssh-keygen -t ed25519 -C "your-work-email@example.com" -f ~/.ssh/id_rsa_work
    
    • 过程中会提示你输入密码,可以直接回车跳过。

2. 将新的公钥添加到你的 Git 账号

  1. 复制新的公钥内容。你可以用这个命令显示公钥内容:
    cat ~/.ssh/id_rsa_work.pub
    
  2. 登录你的新账号的 GitHub (或 GitLab 等) 网站。
  3. 进入 “Settings” -> “SSH and GPG keys”。
  4. 点击 “New SSH key”,将你复制的公钥内容粘贴进去,并给它一个标题 (例如 “Work Laptop”)。

3. 配置 SSH,让系统知道何时使用哪个密钥

  1. ~/.ssh/ 目录下,创建或编辑一个名为 config 的文件 (没有后缀名)。
  2. config 文件中添加类似下面的配置:
    # 个人 GitHub 账号 (使用默认密钥 id_rsa 或 id_ed25519)
    Host github.com
      HostName github.com
      User git
      IdentityFile ~/.ssh/id_ed25519
    
    # 工作 GitHub 账号 (使用刚创建的密钥 id_rsa_work)
    Host github-work
      HostName github.com
      User git
      IdentityFile ~/.ssh/id_rsa_work
    
    • Host github-work 是你自定义的一个别名,用于区分不同的连接。

4. 在 VS Code 项目中使用新配置

现在,你需要告诉你的项目使用这个新的 SSH 配置。

  1. 对于新项目: clone 的时候使用你自定义的别名。

    • 原始命令: git clone git@github.com:Work-Org/project.git
    • 修改为: git clone git@github-work:Work-Org/project.git
  2. 对于已有项目: 修改远程仓库的 URL。

    git remote set-url origin git@github-work:Work-Org/project.git
    

做完这些之后,别忘了为这个项目设置独立的作者信息 (返回方法一的第一步)。

总结与推荐

  • 日常使用:强烈推荐 方法一。它简单、直接,并且能完美地将每个项目的配置隔离开,不会互相干扰。
  • 专业管理:如果你需要长期在2-3个固定账号间工作,并且不想每次都处理凭据缓存,那么花点时间配置好 方法二 (SSH) 会让你的工作流更加顺畅。