好用!Git 同时开发多个分支

要在同一台电脑上对同一个 Git 项目同时开发多个分支,最推荐、最高效的方法是使用 git worktree

这就好比你给同一个 Git 仓库(Repository)配了多把"钥匙"(工作树),每一把钥匙打开一个独立的文件夹,每个文件夹里是同一个项目的不同分支。这样你就可以在 VS Code 或 PyCharm 中同时打开这几个文件夹,互不干扰。

以下是具体的操作步骤和对比分析:

🚀 核心方案:使用 git worktree (强烈推荐)

这是 Git 官方提供的功能,不需要复制庞大的 .git 文件夹,非常轻量。

1. 创建新的工作树(分支文件夹)

假设你当前在项目根目录下(例如 ProjectA),想要在上级目录中创建一个专门用于修复 Bug 的分支:

复制代码
# 命令格式:git worktree add <新文件夹路径> <分支名>
git worktree add ../ProjectA_hotfix fix-branch-name
  • 如果分支不存在 :你可以在命令末尾加上 -b 参数来创建新分支。

    复制代码
    git worktree add -b ../ProjectA_feature feature/login origin/main

    注:这表示基于远程的 main 分支,创建一个本地的 feature/login 分支,并放在 ../ProjectA_feature 文件夹中。

2. 打开并开发

创建成功后,你会在上级目录看到一个新的文件夹 ProjectA_hotfix

  • 直接用你的 IDE(如 VS Code、IntelliJ IDEA)打开这个新文件夹。
  • 此时这个文件夹独立运行,你可以安装依赖、启动服务、修改代码,完全不会影响原本的 ProjectA 文件夹。
3. 删除工作树(任务完成)

当 Bug 修复完并提交代码后,你可以删除这个临时文件夹:

复制代码
# 在原项目根目录或任意 worktree 中执行
git worktree remove ../ProjectA_hotfix
  • 如果文件夹内有未提交的代码,Git 会阻止删除。强制删除请加 -f 参数:git worktree remove -f ../ProjectA_hotfix

🆚 方案对比:为什么选 git worktree

为了让你更直观地理解,我为你整理了三种常见方案的对比:

方案 操作方式 优点 缺点 推荐指数
Git Worktree git worktree add 共享 .git,磁盘占用小;完全隔离,可同时启动服务 管理不当可能产生"孤儿"记录 ⭐⭐⭐⭐⭐
手动克隆 git clone 项目两次 环境绝对隔离,操作简单 磁盘占用翻倍(每个都有 .git);配置繁琐 ⭐⭐
分支切换 git checkout / git stash 不占用额外空间 无法同时运行;切换耗时;易丢代码

💡 进阶管理命令

在使用过程中,你可能需要查看或清理状态,以下是常用的辅助命令:

  1. 查看所有工作树列表

    在任意一个该项目的工作树目录下执行:

    复制代码
    git worktree list

    它会列出所有关联的文件夹及其对应的分支。

  2. 清理无效记录

    如果你直接用文件管理器删除了文件夹(没有用 git worktree remove),Git 内部可能还会残留记录。这时可以用:

    复制代码
    git worktree prune

    这会清理掉那些已经不存在的文件夹的元数据。

📌 总结建议

如果你使用的是 VS CodeIntelliJ IDEA ,配合 git worktree 是最完美的组合。

  • 场景 :正在开发新功能(dev分支),突然要修线上 Bug(hotfix分支)。
  • 做法 :创建一个 worktree 指向 hotfix 分支,用新窗口打开,修完即删。
  • 体验 :就像同时拥有两个独立的项目,但实际上只占用一份 .git 的空间,且代码提交互不干扰。
相关推荐
新镜3 小时前
【git】 曾经合入的文件被删除,再次合入时,相同的文件路径并不会自动合入
git
console.log('npc')4 小时前
git commit之后,想撤销commit
git
春日见4 小时前
UniAD的逻辑,与传统自动驾驶的差异
人工智能·windows·git·机器学习·docker·容器·自动驾驶
奋斗者1号5 小时前
解决Git Push Gerrit分支失败的全流程实战
大数据·git·elasticsearch
alanesnape5 小时前
在 Surface Pro X (ARM64) 上成功部署 Claude Code 的完整复盘
git·node.js·claude code部署·msys2clangarm64·美区apple id·礼品卡支付·surface pro x
SouthRosefinch5 小时前
Git下载与仓库配置
git
ChoSeitaku6 小时前
Git实战|协作开发|分支设计规范|Git实践
git·设计规范
i建模6 小时前
Git升级的详细操作
git
不爱学英文的码字机器18 小时前
Git误操作急救手册大纲
git
A懿轩A19 小时前
【2026 最新】Mac 电脑配置指南:Homebrew 安装换源 + Git 环境配置(保姆级教程)
git