我知道您可以恢复到之前的提交,但听起来历史记录不会消失。如何恢复到之前的提交并确保之后的提交永远消失?
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 上看到之后的提交都消失了。
Git reset --hard
在公共分支上运行并不安全。这将需要强制推送,并且自您推送以来但在这种类型的恢复之前拉下分支的任何其他人都会遇到问题。
推荐的方法是 ADO 中引用的恢复按钮。这也可以以类似的方式在本地完成。如果您知道哈希值,则只需运行
git revert <yourhash>
,它将执行与 ADO 相同的操作。之后,这是与您在其他地方执行的相同的推送过程。