将整个git存储库恢复为特定版本

时间:2012-10-31 00:08:26

标签: git version-control

我有一个git存储库,我从开发中推出并从测试和生产中获取。

说我到目前为止提交了17个提交,并且所有服务器都是同步的 现在我想恢复生产#15而不是only a (few) file(s):我希望生产服务器上的所有文件都反映提交#15。

我也不想为此创建新的提交,也能够前滚到最新的提交,或者从中央存储库转发到其他提交。

我的第一个猜测是在没有声明任何文件的情况下运行它,例如,

git checkout [commit-15-SHA1]

这样做更好/更安全吗?什么是 git方式

1 个答案:

答案 0 :(得分:4)

如果您想要还原,然后从提交#15分支,保持所有修订 AFTER 提交#15完好无损,那么您的方法很好。

git checkout [Commit-15-SHA]

如果您只想在提交历史记录中“备份”,而不会丢失当前更改以及两次最近的提交,请尝试软重置。

git reset --soft [Commit-15-SHA]

但是,如果您想要修改所有更改的内容,包括所有修订 AFTER 提交15,那么您需要进行硬重置。

git reset --hard [Commit-15-SHA]

详细了解git reset here