如何将存储库重置为某个版本并应用此时的所有更改?

时间:2015-08-17 16:51:13

标签: git

我犯了一个大错误,我想知道如何从中恢复。几个星期前,我克隆了一个存储库,分支了主人并开始进行更改。直到今天我才意识到我的修改是针对即将发布的版本而不是现在的版本。不幸的是,创建项目的人只使用标签来发布而不是单独的分支。

到目前为止,我已经能够通过检查相应的标记并创建新分支来分支当前版本。问题是我想在新分支上重放所有我的特定更改。换句话说,自上次发布以来,我不想要任何新代码,只有我做过的更改。

展望未来,我如何使用远程仓库但阻止拉动将我的代码升级到新版本。

2 个答案:

答案 0 :(得分:2)

我认为您正在寻找git rebase --onto。我直接从git手册页中抓取了这个例子,并用你在问题中理解的内容替换了分支名称:

                        H---I---J current_branch
                       /
              E---F---G  master
             /
A---B---C---D  old_release

如果你应该在master

上做到这一点,那么你后悔从old_release分支出来

在这种情况下,你应该这样做:

git rebase --onto old_release master current_branch

这应该重播您在H分支上从Jold_release的提交。

答案 1 :(得分:-1)

git rm -r .
git checkout HEAD~3 .
git commit

HEAD~3是你想回到的地方。 你也可以没有

git reset --hard <tag/branch/commit id>

然后,您再次进行更改:/