如何在主分支中恢复拉取请求?

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

我不小心将我的工作拉入了 Azure 上托管的主分支。 我希望它回到我输入代码之前。 我该如何改变这个?

我点击了“恢复”。但它要求我选择一个分支? (我以前的分支不在那里)。

azure
2个回答
0
投票

我假设您之前的分支在拉取请求完成时被删除。

因此,您可以选择从主分支创建一个新分支。您可以将其视为已删除的分支。在本地计算机上运行的命令:

  1. 确保您位于主分支:git checkout main
  2. 从 main 创建新分支: git checkout -b feature/mydeletedBranch
  3. 将您的新功能分支推送到远程:git push origin feature/mydeletedBranch

要将主分支设置为上一个拉取请求提交并省略当前分支,请在本地运行命令:

  1. 确保您位于主分支:git checkout main
  2. 运行 git log 来识别之前的提交哈希: git log -n 5 enter image description here
  3. 强制从主分支中删除最后一次提交。在这里我要回到之前的提交。在我的示例中,我想返回到 38fa66d4abf8dbf02c07bcc816bba280e7d8dcf0 : git reset --hard 38fa66d4abf8dbf02c07bcc816bba280e7d8dcf0 enter image description here
  4. 现在再次运行 git log 来验证您的历史记录。可以看到最后一次提交已经不在历史记录中了 enter image description here
  5. 强制将更新的本地主分支推送到远程: git push origin main --force

这将反映远程分支中的更改。而且历史上你不会有那个特定的公关承诺。

PS:假设您要删除的合并拉取请求提交是主分支中完成的最后一次提交。


0
投票

在下拉菜单中选择

main
。在文本框中,为主题分支选择任何唯一的名称。 有一个帮助页面,它解释了它们的含义:

  • 目标分支:执行恢复的 PR 将合并到该分支。
  • 主题分支:临时分支,名称只需唯一即可。

就我个人而言,我更喜欢简单地创建一个本地功能分支,在其中恢复更改。然后我为该分支创建一个新的 PR。无需重新学习 Azure、GitHub、bitbucket 或其他 git 托管的任何内容。

git checkout main
git switch -C revert-foo
git revert SHA-OF-COMMIT-TO-REVERT
git push origin revert-foo
© www.soinside.com 2019 - 2024. All rights reserved.