【问题标题】:How can I reset to a commit and make it master?如何重置为提交并使其成为大师?
【发布时间】:2015-07-14 23:55:02
【问题描述】:

我想将 m 存储库重置为旧提交并从那里开始跟踪更改。这就像 50 次之前的提交,所以 git revert 不是一个选项。我该怎么办?

附:更新 - 我还需要推送该提交并成为存储库中的最后一个提交。

【问题讨论】:

  • Revert to a previous Git commit 的可能重复项
  • Joe 如果我使用上面的方法 - 我将不得不手动编写所有 50 个提交 SHA...
  • 我不相信您理解重复问题中的答案。

标签: git github git-revert


【解决方案1】:

蒂姆的回答是正确的。我正在添加我在http://git-scm.com/docs/git-reset 上找到的更多信息

$ git commit ...              (1)
$ git reset --soft HEAD~1     (2)
<< edit files as necessary >> (3)
$ git add ....                (4)
$ git commit -c ORIG_HEAD     (5)

(1) 这是您要撤消的内容

(2) 这通常是在您记住刚刚完成的内容时进行的 提交的内容不完整,或者您拼错了提交信息1,或者 两个都。使工作树保持“提交”之前的状态。

(3) 更正工作树文件。

(4) 提交阶段更改。

(5) 提交更改,重用旧的提交消息。重置复制 老头给.git/ORIG_HEAD;使用-c ORIG_HEAD 提交将打开一个 编辑器,最初包含来自旧提交的日志消息 并允许您对其进行编辑。如果您不需要编辑消息,您可以 可以改用-C 选项。

【讨论】:

    【解决方案2】:
    $ git reset --hard <commit-hash-of-commit-to-reset-to>
    

    请注意,这将删除此后的所有更改,如果您想保留更改并仅删除提交,请使用 --soft 而不是 hard

    【讨论】:

    • git reset --soft won't update the index 所以所有更改将在重置完成后暂存。如果您希望在工作副本(而不是索引)中保留更改,请使用git reset --mixed 或简单地使用git reset
    猜你喜欢
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 2011-03-23
    • 2020-06-30
    • 2017-12-28
    • 2017-05-05
    • 2013-07-14
    • 1970-01-01
    相关资源
    最近更新 更多