MST
星途 面试题库

面试题:Node.js项目基于Git的版本回退策略

假设你在一个Node.js项目中发现某个版本引入了严重bug,需要回退到之前的稳定版本。请详细阐述如何使用Git命令实现版本回退,并且要保证后续新功能开发基于回退后的版本继续进行,同时不丢失已经开发但未引入问题的代码变更。
23.8万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试
  1. 查看版本历史
    • 使用git log命令查看提交历史,找到之前稳定版本的commit hash。例如:
git log
  • 记录下稳定版本对应的commit hash值,假设为<commit - hash>
  1. 回退到稳定版本
    • 采用git checkout -b stable_branch <commit - hash>命令,该命令会基于稳定版本的commit创建一个新分支stable_branch并切换到该分支。这样既回退到了稳定版本,又不会影响当前分支。例如:
git checkout -b stable_branch <commit - hash>
  1. 合并未引入问题的代码变更
    • 假设未引入问题的代码变更在原分支(如master分支)。切换回原分支:
git checkout master
  • 查看并记录下没有引入问题的commit hash值。例如,这些commit依次为commit1_hashcommit2_hash等。
  • 切换回stable_branch分支:
git checkout stable_branch
  • 逐个将这些commit合并到stable_branch分支。如果是多个commit,可以使用git cherry - pick命令依次合并。例如:
git cherry - pick commit1_hash
git cherry - pick commit2_hash
  1. 后续开发
    • 后续新功能开发就在stable_branch分支上进行。例如,创建新的功能分支:
git checkout -b new_feature_branch stable_branch
  • new_feature_branch分支上进行新功能代码的编写、提交等操作。