我有一组提交(已发布)10+我想要删除。理想情况下,我想创建一个Pull Request,然后将其合并到我项目的develop分支中。
问题是如果我这样做:
git reset --hard <commit_hash>
git checkout -b my_fixed_branch
git push origin my_fixed_branch
github上的pull请求在diff中没有显示任何内容...(据我所知,它发生的原因是开发分支已包含来自<commit_hash>
的更改)。所以我真的不明白如何正确地重置...
当然我认为可以做类似的事情
git reset --hard <commit_hash>
git push origin develop -f
要直接覆盖开发分支上的更改...但我想要使用Pull Request。
这会在<commit_hash>
之后恢复每次提交,直到现在:
git revert --no-commit <commit_hash>..HEAD
git commit -m "Message explaining what was done"
--no-commit
选项确保您获得单个还原提交而不是几个。
您可以在没有它的情况下还原为每个合并创建单独的还原提交。对于其他用户来说这可能更清楚,然后Git会免费为您提供提交消息。
您要么还原提交(即使用git revert
创建撤消更改的新提交),那么它们可以合并(可能通过拉取请求)。
你丢弃它们,但是没有什么可以合并:你需要强制推送(通过执行你在问题中提供的命令)。