如何重置为提交并使其成为大师?
Posted
技术标签:
【中文标题】如何重置为提交并使其成为大师?【英文标题】: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... 我不相信您理解重复问题中的答案。 【参考方案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
。以上是关于如何重置为提交并使其成为大师?的主要内容,如果未能解决你的问题,请参考以下文章