恢复GitHub上的提交

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

我有一组提交(已发布)10+我想要删除。理想情况下,我想创建一个Pull Request,然后将其合并到我项目的develop分支中。

问题是如果我这样做:

  1. git reset --hard <commit_hash>
  2. git checkout -b my_fixed_branch
  3. git push origin my_fixed_branch

github上的pull请求在diff中没有显示任何内容...(据我所知,它发生的原因是开发分支已包含来自<commit_hash>的更改)。所以我真的不明白如何正确地重置...

当然我认为可以做类似的事情

  1. git reset --hard <commit_hash>
  2. git push origin develop -f

要直接覆盖开发分支上的更改...但我想要使用Pull Request。

git github git-revert
2个回答
2
投票

这会在<commit_hash>之后恢复每次提交,直到现在:

git revert --no-commit <commit_hash>..HEAD
git commit -m "Message explaining what was done"

--no-commit选项确保您获得单个还原提交而不是几个。

您可以在没有它的情况下还原为每个合并创建单独的还原提交。对于其他用户来说这可能更清楚,然后Git会免费为您提供提交消息。


0
投票

您要么还原提交(即使用git revert创建撤消更改的新提交),那么它们可以合并(可能通过拉取请求)。

你丢弃它们,但是没有什么可以合并:你需要强制推送(通过执行你在问题中提供的命令)。

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