Azure DevOps Repos - 回退到以前的提交,就像最近的提交从未存在过

12

我知道你可以回到之前的提交记录,但好像历史记录并不会消失。如何回到先前的提交记录,并确保在此之后的提交记录永远消失?


1
嗨,你有机会尝试下面的答案了吗?效果如何? - Levi Lu-MSFT
2个回答

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上,之后的提交记录都消失了。


在Azure DevOps中运行得非常好。 - GLP
根据我的发现,这仍将暂时保留提交记录,尽管它不会在GUI中显示,但如果您有提交ID,仍然可以通过https://dev.azure.com/{organization}/{PROJECT}/_git/{REPO}/commit/{COMMITID}访问它。 - Nick Kimbrough
太棒了。对我来说完全没有问题。 附注:对于不熟悉的人来说,<commithash>是来自上一个提交的,可以从AzDevOps/Repository/History中获取。 - David Jones
在DevOps中,你可以在哪里输入Git命令? - undefined

13
虽然代码方法可用,但 Azure DevOps 网站提供了非常快捷的方法。
前往 Azure DevOps -> 您的存储库 -> 切换到您刚刚提交需要更改的工作分支。
  1. 进入历史记录,点击需要撤销的提交。 选择要撤销的提交。

  2. 从右上角的汉堡图标中选择“撤销”选项。 输入图像描述

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

  4. 验证您的提交已按预期在工作分支中被撤销。 输入图像描述

注意:有时如果一个提交有多个依赖项,可能会出现错误。但通常情况下,它可以正常工作。

这种方法将创建一个新的提交,撤销你在一个提交中所做的修改,但是被撤销的提交仍然存在于历史记录中。撤销不会"确保之后的提交永远消失",正如提问者所要求的那样。重置(而不是撤销)将从历史记录中删除提交,并且还允许你回退多个提交,而不仅仅是一个。 - Vinícius Queiroz
回滚提交 XYZ 时遇到冲突。此操作需要在本地执行。:/ - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接