【问题标题】:Reverting commits on GitHub恢复 GitHub 上的提交
【发布时间】:2017-06-11 07:14:39
【问题描述】:

我有一组要删除的提交(已发布)10+。所以理想情况下,我想创建一个拉取请求,然后可以将其合并到我项目的开发分支中。

问题是,如果我这样做:

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

github 上的拉取请求在 diff 中没有显示任何内容...(据我了解,这是因为开发分支已经包含来自 <commit_hash> 的更改)。所以我真的不明白如何正确地进行重置......

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

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

直接覆盖开发分支上的更改...但我想改用拉取请求。

【问题讨论】:

标签: git github git-revert


【解决方案1】:

这会恢复(不包括)<commit_hash> 之后的每个提交,直到现在:

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

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

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

【讨论】:

  • 好吧,我这样做是这样的:```git revert --no-commit ..HEAD 并得到错误:提交 是一个合并,但没有给出 -m 选项。致命:还原失败
【解决方案2】:

您可以恢复提交(即使用git revert创建撤消更改的新提交),以便可以合并它们(可能通过拉取请求) .

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

【讨论】:

    猜你喜欢
    • 2015-11-26
    • 2019-05-07
    • 2021-04-15
    • 2020-12-13
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 2018-11-01
    • 2013-03-30
    相关资源
    最近更新 更多