Git保留提交历史,回退至指定提交生成新提交的方案咨询
如何保留提交历史的同时回退到旧提交并生成新提交?
你的需求其实非常好实现,不用折腾git reset(会丢历史)或者git revert(还要算提交范围),直接一步到位生成你要的提交4就行,步骤超简单:
首先确保你的工作区是干净的(没有未提交的修改,如果有的话可以先用git stash临时存起来),然后执行下面的操作:
把提交1的所有文件内容同步到当前工作区和暂存区:
git checkout <提交1的哈希值> .这里的
.非常重要,它表示只把提交1里的文件内容覆盖到当前分支的工作区,而不是切换到提交1的分支。直接提交这个状态,生成提交4:
git commit -m "回退到提交1的状态"
这样操作完之后,你的提交链就变成了 1 <- 2 <- 3 <- 4,而且提交4的内容和提交1完全一致,同时2和3的提交历史完完整整保留着——以后要是想发布这两个提交的功能,直接git cherry-pick 2 3就能把它们的改动重新应用回来,非常灵活。
内容的提问来源于stack exchange,提问作者sinbar
相关产品推荐
相关产品推荐

