Azure Devops Repos - 恢复到之前的提交,就像最近的提交从未存在过一样

问题描述 投票:0回答:3

我知道您可以恢复到之前的提交,但听起来历史记录不会消失。如何恢复到之前的提交并确保之后的提交永远消失?

git azure azure-devops git-revert azure-repos
3个回答
24
投票

Git Reset命令可以实现这一点。

您可以运行

git reset --hard
命令恢复到之前的提交。然后运行
git push --force
命令来清除服务器上此提交之后的所有提交。

git clone <repo_url>  #clone your azure git repo to local
git checkout <branch>

git reset --hard <commithash> #revert back to a the previous commit
git push --force  #push to remote server

在本地运行上述 git 命令后。您将在 azure devops git 上看到之后的提交都消失了。


15
投票

虽然可以使用代码方法,但 Azure DevOps 网站提供了非常快速的方法。

转到 Azure DevOps -> 您的存储库 -> 切换到您刚刚进行需要更改的提交的工作分支。

  1. 进入历史记录,点击需要撤销的提交。

  2. 从右上角的汉堡包图标中选择“恢复”选项。

  3. 它将自动创建一个新分支,并要求您批准从这个新分支到您的工作分支的拉取请求。完成此拉取请求。

  4. 验证您的提交是否已按预期在工作分支中撤销。

注意:有时,如果提交有多个依赖项,则可能会引发错误。但通常情况下,它工作得很好。


0
投票

Git reset --hard
在公共分支上运行并不安全。这将需要强制推送,并且自您推送以来但在这种类型的恢复之前拉下分支的任何其他人都会遇到问题。

推荐的方法是 ADO 中引用的恢复按钮。这也可以以类似的方式在本地完成。如果您知道哈希值,则只需运行

git revert <yourhash>
,它将执行与 ADO 相同的操作。之后,这是与您在其他地方执行的相同的推送过程。

© www.soinside.com 2019 - 2024. All rights reserved.