带回来和以前的git提交没有重写历史

时间:2014-05-13 23:53:18

标签: git git-branch

假设我正在开发一个分支'devel',我想从几个提交中恢复'devel'的状态,而不是覆盖它们之间的提交。任何人都可以通过一种相对简单的方式帮助我吗?

2 个答案:

答案 0 :(得分:0)

您始终可以git checkout之前的提交将提交状态转换为您的工作副本。然后将其提交回仓库。来自您的回购根的git checkout <sha> -- .之类的东西应该这样做。此语法不会更新HEAD,只会更新索引和工作副本。

答案 1 :(得分:0)

您可以执行git checkout -b newbranch commit,即git commit -b new HEAD~5(或询问gitk提交的SHA2)。因此,你在给定的点开始一个新的分支。

请注意,只有git checkout commit才会让您进入&#34;分离头部&#34; state,你定位在提交,但它在空间中浮动,未连接。在此状态下完成的更改未集成到存储库中。