1

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

假设到目前为止我进行了 17 次提交,并且所有服务器都是同步的。
现在我想在生产中恢复提交 #15,但不仅仅是(几个)文件:我希望我的生产服务器上的所有文件都反映提交 #15。

我也不想为此创建一个新的提交,并且也希望能够前滚到最新的提交,或者来自中央存储库的其他提交。

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

git checkout [commit-15-SHA1]

有没有更好/更安全的方法?git方式是什么?

4

1 回答 1

4

如果你想恢复,然后从提交 #15 分支,保持提交 #15之后的所有修订完整,那么你的方法是一个好方法。

git checkout [Commit-15-SHA]

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

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

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

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

在此处阅读有关 git reset的更多信息。

于 2012-10-31T00:22:20.780 回答