在没有强制推送

时间:2016-03-09 07:48:49

标签: git version-control continuous-integration continuous-deployment

如何在不强制推送和丢失历史记录的情况下将某些远程存储库还原为旧提交?我知道我能做到

git reset --hard <commit-hash>
git push -f origin master

但我没有强制推送的权限,我也不想丢失历史记录。

我想这样做是因为我将一些****推入了我的主分支,并且自动部署从这个分支部署到生产环境。我通过创建一个新的分支并更改了部署设置来使用它来解决这个问题,但是有没有选项可以将远程存储库的当前状态设置为旧的提交,以防万一发生这种情况?

2 个答案:

答案 0 :(得分:9)

您可以使用git revert <commit>…进行所有n次提交,然后照常推送,保持历史不变。

https://git-scm.com/docs/git-revert

答案 1 :(得分:3)

正如上面评论中所补充的那样。

检查一下以获取完整的详细信息:

How to move HEAD back to a previous location? (Detached head)

上面的帖子中还没有描述git revert

git revert <commit>

git revert简单地撤消所需的提交,并通过添加新的&#34; revert&#34;撤消对此repo所做的更改。提交。

enter image description here