tre*_*vis 2 git githooks git-bare
我有一个带有裸git存储库的服务器,我推送到实时部署.它有一个简单的post-receive钩子,用最新的更新我的服务器代码master.
当生产服务器上发现错误时,我有时需要恢复到特定的过去提交(我在本地测试自己,但我没有捕获所有内容).有没有一个很好的*方法来恢复到这个设置的过去提交?
*很好,我的意思是一个单行,如推到裸库: git push prod master
如果你想在历史记录中保留你的错误,这将添加补偿你指定的提交的提交.(必须在本地签出master)例如,如果要还原最后一次提交,可以使用:
git revert master
git push origin master
Run Code Online (Sandbox Code Playgroud)
如果要从历史记录中删除最后2个提交(必须在本地签出master):
git reset master~2
git push -f origin master
Run Code Online (Sandbox Code Playgroud)
或者不改变任何本地的东西,这应该也可以:
git push -f origin master~2:master
Run Code Online (Sandbox Code Playgroud)
最后两个将强制将主服务器更新为上次master提交的第三个.如果其他人已经删除了您要删除的提交,则会出现问题.