暂时恢复为git commit并推送到服务器

时间:2016-01-04 14:55:55

标签: git github

我有一个项目想要恢复到大约12个提交之前。我想恢复,推送到服务器并在生产服务器上测试它。如果一切顺利(错误消失),那么我想保留这个版本并转储导致该错误的下一个12次提交。如果这个恢复过程没有修复bug,那么我想回到目前的头部。

我应该做什么样的git revert?

3 个答案:

答案 0 :(得分:3)

您可以使用git revert进行一系列提交,Git将为每个恢复生成一个新的反向提交(总共12个提交)。

接下来,(可选)您可以使用git rebase -i将所有提交压缩为一次提交。

最后,你将一次提交(或者,如果你跳过壁球,全部12次提交)推送到你的服务器。

答案 1 :(得分:2)

我会通过创建一个新的测试分支来解决这个问题,然后查看有问题的12个提交:

# from current feature branch
git checkout -b feature_test

# nuke 12 commits
git reset --hard HEAD~12

您可以将此分支推送到服务器并进行测试。如果您不喜欢所看到的内容,只需删除feature_test分支即可。如果您确实想要还原12次提交,那么您还可以使用git reset从实际功能分支中删除12次提交。

如果无法重写远程功能分支的历史记录,则可以使用git revert恢复12次提交。在这种情况下,Git将在功能分支的顶部创建12个提交,这将撤消您要删除的12个提交。

答案 2 :(得分:0)

我会做的是

  • 备份您当前的状态:git checkout -b current_master_bu
  • 回到主人:git checkout master
  • 然后重置以提交您想要的内容:git reset --hard <old_commit_hash>

如果这样有效,太好了!将更改推送到master:git push -f(小心重写历史记录等)

如果您需要返回已保存的主人,只需合并备份分支: git merge current_master_bu