You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何保留项目重构进度,同时基于旧Commit复制到新文件夹开发功能?

解决方案步骤

1. 保存当前未完成的重构进度

不管你当前有没有提交重构的修改,先把进度稳妥保存:

  • 如果有未提交的修改,直接创建分支并提交所有改动:
    git checkout -b refactor-wip
    git add .
    git commit -m "WIP: 未完成的大规模重构"
    
  • 如果已经提交过部分重构,直接切换到对应分支即可,确保所有重构改动都在这个分支里。

2. 检出可运行的旧版本并复制到新目录

  • 先找到最后能正常运行的历史commit哈希:
    git log --oneline
    
    在输出里定位到目标commit(比如哈希为abc123)。
  • 切回主分支(假设为main),再检出到目标commit:
    git checkout main
    git checkout abc123
    
  • 此时工作区是可运行的旧版本,把整个项目文件夹复制到新目录(比如../project-new-feature),用于开发老板要求的功能。
  • 立刻切回重构分支继续工作:
    git checkout refactor-wip
    

3. 新功能开发完成后的合并建议

新功能开发完毕后,按以下方式整合更清晰:

  • 在新目录里初始化git,将旧版本作为初始提交,然后提交所有新功能改动,方便后续追踪。
  • 回到原项目,从目标旧commit切出专门的功能分支:
    git checkout -b new-feature abc123
    
  • 把新目录里的改动复制过来,提交到new-feature分支,之后可合并到主分支;等重构完成后,再将refactor-wip分支合并到主分支(合并时需提前对比代码,处理冲突)。

注意事项

  • 检出旧commit后,务必先测试代码是否能正常运行,再复制目录。
  • 不要在检出的旧commit上直接开发,避免打乱原项目的历史记录,复制到新目录是最安全的隔离方式。
  • 比起用git stash暂存修改,用分支保存重构进度更持久,不会出现暂存内容丢失的情况。

内容的提问来源于stack exchange,提问作者Islam Y-

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 11:05:18