Git多特性并行开发策略咨询:分支切换与代码运行冲突问题
Git多分支并行开发的正确处理方式
先补救当前错误分支的问题
如果你已经错误地从feature1分支创建了feature2,导致feature2包含feature1的改动,可以这么修正:
- 切换到feature2分支,先保存当前改动:
- 未提交的改动可以暂存:
git stash - 已经提交的话,记住提交的哈希值(用
git log查看)
- 未提交的改动可以暂存:
- 切回根分支(比如main):
git checkout main - 创建正确的feature2分支:
git checkout -b feature2 - 恢复feature2的改动:
- 用stash暂存的话:
git stash pop - 已经提交的话:
git cherry-pick <你之前记住的提交哈希>
- 用stash暂存的话:
- 删掉错误的feature2分支:
git branch -D feature2-wrong(如果之前的错误分支也叫feature2,先给它改名:git branch -m feature2 feature2-wrong)
并行开发时不干扰的解决方案
要同时运行feature1代码、开发feature2,有几种实用方法:
- 用Git Worktree实现工作区隔离:Git原生多工作区功能,无需额外克隆仓库
- 在主仓库目录下,执行命令创建feature1的独立工作区:
git worktree add ../feature1-run feature1
上级目录会生成feature1-run文件夹,里面是feature1分支的代码,可直接运行。 - 主仓库目录切换到feature2分支正常开发:
git checkout feature2 - 用完后删除工作区:
git worktree remove ../feature1-run
- 在主仓库目录下,执行命令创建feature1的独立工作区:
- 克隆多个本地仓库:简单直接,适合不想记复杂命令的场景
把仓库再克隆一份到本地另一个目录,一个目录拉feature1分支运行,另一个目录拉feature2分支开发,两个仓库完全独立,不会互相干扰。 - 临时查看/提取feature1代码:如果只是临时看代码,不需要长期运行
- 查看单个文件内容:
git show feature1:src/your-file.js - 临时把feature1的某个文件拉到当前分支:
git checkout feature1 -- src/your-file.js,用完记得用git restore src/your-file.js还原,避免提交到feature2。
- 查看单个文件内容:
规范的分支创建流程
日常开发养成好习惯:
- 所有feature分支都从稳定的根分支(比如main、develop)创建,确保分支起点干净。
- 开发feature1时,定期拉根分支的最新代码合并到feature1(
git pull origin main),减少后续合并冲突。 - 接到新需求时,先切回根分支并拉取最新代码,再创建新的feature分支。
内容的提问来源于stack exchange,提问作者KansaiRobot
相关产品推荐
相关产品推荐

