如何将我的 git 分支恢复到指定的提交?

Posted

技术标签:

【中文标题】如何将我的 git 分支恢复到指定的提交?【英文标题】:How to recover my git branch to an appointed commit? 【发布时间】:2014-07-06 21:42:46 【问题描述】:

例如:我想恢复到远程的最后 3 次提交?

【问题讨论】:

“恢复”是什么意思?您的意思是查看该特定快照上的代码以了解过去的提交吗? 我建议您阅读***.com/help/how-to-ask 并编辑此问题以符合本页的标准。 【参考方案1】:

您从远程获取的是存储库及其分支的完整历史记录。

但是一旦获取,没有什么可以阻止您将分支重置为 3 次提交:

git checkout yourBranch
git reset --hard HEAD~3

确保您没有任何正在进行的工作(它们将被擦除),并且您必须强制推送到上游分支:

git push -f origin yourBranch

如果您有其他人从同一个远程仓库获取同一个分支,这不是一个好的做法。

另一种技术(不涉及重写历史)是revert:例如参见“Reverting a series of pushed merges and commits in Git (without rewriting history)”

git revert HEAD~3..HEAD

这将创建一个 new 提交,该提交将取消最后 3 个。您可以像往常一样推送它。

【讨论】:

以上是关于如何将我的 git 分支恢复到指定的提交?的主要内容,如果未能解决你的问题,请参考以下文章

如何将我当前的更改提交到 Git 中的不同分支 [重复]

你如何恢复到 Git 中的特定标签?

git 如何让远程分支版本回退

恢复合并时如何找出分支号?

git rebase 另一个分支到我的工作分支

从git文件删除后如何恢复文件?