【问题标题】:Revert master to old commit while preserving commits在保留提交的同时将 master 恢复为旧提交
【发布时间】:2015-01-03 00:30:34
【问题描述】:

这就是我的提交历史的样子(所有内容都已推送到存储我的 repo 的 Github,但我是唯一的贡献者):

                           master       
                             |
..-c100-c101-c102-c103-...-c150

我需要将master 恢复为c100 提交,同时保留 剩余的提交(即:c101-c102...-c150),我不想松开它们。

所以这就是我想出的:

git checkout -b new-branch # Set up branch containing all commits
git checkout master        # Go back to master
git revert <c-100>         # Revert master branch to c-100 commit

这将(希望)导致:

   master
     |
..-c100-c101-c102-c103-...-c150
                             |
                        new-branch

理想情况下,我会向 master 提交一些提交,然后保持不变,直到我可以将新分支合并到其中。

这是正确的做法吗?


添加

刚刚试了一下,使用git revert &lt;SHA&gt; 不起作用,它只会恢复那个提交。

【问题讨论】:

  • git revert != snv revert。听起来您需要执行 git reset --hard c100 然后强制推送。 SO上有很多关于这个的其他线程
  • 我刚刚尝试了我的问题中的命令,但它不起作用,它只是恢复了 that 提交,它没有将master 恢复到原来的状态在那次提交上。所以我猜你是对的。

标签: git github git-revert


【解决方案1】:

这是完全正常的。您也可以在要提交的提交的尖端设置一个标签。

【讨论】:

    【解决方案2】:

    答案是(如here 所述)使用:

    git revert --no-commit c-100..HEAD
    git commit
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-18
      • 1970-01-01
      • 2016-06-23
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      • 2022-07-19
      • 2017-07-14
      相关资源
      最近更新 更多