【问题标题】:Reverting remote branch through PR to a specific commit通过 PR 将远程分支恢复到特定的提交
【发布时间】:2021-12-21 07:01:50
【问题描述】:

基本上我有一个远程主分支,我没有直接推送访问权限。我已经确定了一个提交说 x 之前的提交,我想将远程分支恢复到。有没有一种简单的方法可以做到这一点,而不必恢复 x 之前的所有先前提交?

我尝试过:

git checkout -b A_DEV_BRANCH
git reset --hard COMMIT_SHA_X
git add .
git push origin A_DEV_BRANCH

但是通过拉取请求报告了 0 个更改,并且似乎没有删除自 X 以来的提交,感觉我可能在这里遗漏了一些简单的东西?

【问题讨论】:

  • 这个问题(以及您的相应答案)中有一堆令人困惑的短语。您不能“将 还原为 提交”。您要么“重置为一个提交”,要么“恢复一个特定的提交(或一组提交)”。如果您想在不使用“reset”的情况下“重置为”提交,则必须还原所有提交之后该提交(而不是之前)。您的回答也令人困惑,因为该问题暗示您希望重新设置(或在之后恢复所有提交),但您的回答只是一次恢复。
  • 无论您打算“重置”还是“还原”,我认为如果问题更清楚,那么很可能是重复的,因为关于重置与还原有多个问题,并且何时使用每个。
  • @TTT 我几乎可以肯定这个问题也会重复,但我找不到任何人以同样的“风格”来问它。我认为这个问题实际上表明了我对 git 如何工作的误解,也许最好删除这个问题和相应的答案(它可能只会让未来的读者感到困惑)。

标签: git github git-revert


【解决方案1】:

执行此操作的最简单方法是跟踪导致 x 出现在远程分支中的特定提交 (y),然后使用 git revert y 将其还原并将结果提交回 master。

使用git reset 可以完成我想做的事情,但会涉及重写历史记录,并且可能会给那些在两次提交远程工作之间建立工作基础的人造成问题。

【讨论】:

    猜你喜欢
    • 2018-11-01
    • 2013-05-03
    • 2019-06-04
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    相关资源
    最近更新 更多