【问题标题】:Delete last push in git server删除 git 服务器中的最后一次推送
【发布时间】:2016-11-07 12:02:24
【问题描述】:

我根据本教程将代码部署在我的一台服务器中:

How To Set Up Automatic Deployment with Git with a VPS

但是现在我有一些提交推送到部署服务器的问题,有时是 githooks 中的代码,进行一些测试,这个测试失败,当这种情况发生时我需要恢复代码,理想情况下这必须是自动的,但刚才我没有遇到任何问题,可以手动恢复到特定的提交...

如何恢复上次推送或将此服务器(基于 git-bare)推送到特定提交?

【问题讨论】:

标签: git deployment hook git-revert git-bare


【解决方案1】:

因为有问题的分支已经发布,你最好的选择可能是使用git revert

git revert <SHA-1a>..<SHA-1b>

其中&lt;SHA-1a&gt;&lt;SHA-1b&gt; 是您要恢复的一系列提交中的第一个和最后一个提交的提交ID。

这将应用许多还原提交,从最近到最旧,这将撤消范围内的更改。

【讨论】:

  • git revert 的问题,它的 git revert 在本地 atlassian.com/git/tutorials/undoing-changes/git-revert 工作,我需要在远程部署服务器中恢复更改...
  • 我不明白。部署的分支必须起源于某个地方的本地分支。是否有某些原因您不能在本地还原提交然后推送?
  • 应该向 OP 说明这实际上记录了一个新的提交,该提交撤消了一系列提交的更改。这不是他认为自己想要的,但这是他可以同时获得回购的最好结果。
  • @evaitl 我原本打算只发布一次提交,但我怀疑他有一堆他想要恢复的提交。
  • 让我尝试更好地解释...我有项目,有 2 个来源... $ git remote * live * origin 其中origin指向 gitlab 服务器,并指向生产服务器,两者都有一个主分支作为主体,有时当我们将提交推送到“实时”服务器时,正如我在链接中解释的那样,合并失败了,我们只需要回滚这个服务器,但保持 gitlab 不变,并且修复错误后,再次推送到实时服务器...但是分支中的历史记录不必更改...
猜你喜欢
  • 2017-04-03
  • 2015-01-16
  • 2020-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-30
  • 2013-11-06
  • 1970-01-01
相关资源
最近更新 更多