我有一个git存储库,我从开发中推出并从测试和生产中获取。
说我到目前为止提交了17个提交,并且所有服务器都是同步的 现在我想恢复生产#15而不是only a (few) file(s):我希望生产服务器上的所有文件都反映提交#15。
我也不想为此创建新的提交,也能够前滚到最新的提交,或者从中央存储库转发到其他提交。
我的第一个猜测是在没有声明任何文件的情况下运行它,例如,
git checkout [commit-15-SHA1]
这样做更好/更安全吗?什么是 git方式?
答案 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。