gpt4 book ai didi

git - 如何在本地还原 pull 请求?

转载 作者:行者123 更新时间:2023-12-04 08:43:06 25 4
gpt4 key购买 nike

我已经使用以下方法克隆了一个 github 存储库:

git clone

然后我检查了一个标签:

git checkout badCommit

现在,我发现了一个错误。该错误是在 2 个月前的一次提交中引入的。我有这个提交的 ID 和所有信息。

我想:

  1. 删除此提交 - 仅在本地并测试我的更改是否具有预期效果
  2. 仅使用此更改创建一个新的分支/标签
  3. 对这些更改进行 MR

请问最干净的方法是什么?

最佳答案

这是一个非常简单的解决方案,它不会像您要求的那样删除错误的提交,而是恢复其效果(确实删除底部错误提交的变体):

  1. 将 HEAD 移回您的主要开发分支

您目前处于分离的 HEAD 状态,所以首先您想回到主分支的顶端(假设它是 master):

git checkout master
  1. 创建一个新分支并查看
git checkout -b newBranch
  1. 恢复错误的提交
git revert badCommit

这不会从历史记录中删除 badCommit,但会添加一个新提交,该提交会删除 badCommit 引入的更改。

  1. 测试

然后您可以测试这是否解决了您的问题。

  1. 提交 MR

如果你高兴,你可以推送newBranch到远程提交一个MR。根据您是否对远程具有写入权限,这看起来可能有所不同,但大致如下(假设远程称为 origin):

git push -u origin newBranch

如果您真的想从新分支的历史记录中删除该提交,您可以遵循相同的工作流程,除了 3. 你会做的:

  1. newBranch 中删除 badCommit
git rebase -i badCommit~

(注意 ~:您在此命令中使用了 badCommit 之前的提交)。

然后将 pick 替换为 ddrop 对应于 badCommit 的行(它将在顶部行)或删除该行并保存。

如果删除该提交会产生任何冲突,您可能必须先解决冲突才能结束 rebase 。

如果您使用此选项,请非常小心,不要从任何已推送到远程的分支中删除您的错误提交,因为这会对您的协作者造成严重破坏。

关于git - 如何在本地还原 pull 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64467339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com