这与暂时将工作副本切换到特定的 Git 提交基本上是相同的问题,但适用于 Mercurial。
假设修订版 500 是我在 Mercurial 中提交的最后一个修订版。我又做了一些工作,并意识到早期版本中出了问题。所以,我已经“git stashed”,也就是说,hg shelved 我当前的更改,所以我处于干净的修订版 500。
现在我想做的是检查版本499,重建软件,看看是否仍然有错误;如果是,检查版本498,重建软件,看看是否仍然有错误;如果是,修订497,重建软件,看看是否还有错误;等等,直到我弄清楚哪个版本引入了错误。
完成此操作后,我想返回到修订版 500(unshelve我之前的工作),添加修复,然后进行新的提交(这将是修订版 501)。这意味着当我回顾历史时,我不想重置任何东西,也不想从那里上演任何东西。
在 git 中,我可以git checkout HASH回顾历史,一旦完成,git checkout master就回到提示。我应该在 Mercurial 中使用哪些命令?
您可以使用 hg update 转到旧版本:
hg update 499 # The short id number or the full hash
Run Code Online (Sandbox Code Playgroud)
或者,如果您想在不需要知道 id 的情况下跳转到父变更集,您可以使用 Mercurial revset:
hg update .~1
Run Code Online (Sandbox Code Playgroud)
确定问题后,您可以简单地:
hg update tip
Run Code Online (Sandbox Code Playgroud)
并取消搁置您的更改,添加您的修复并提交。
我建议您阅读 Mercurial:权威指南。您的问题非常基本/入门级水银用法。
编辑:Mercurial:权威指南的链接是:
http://hgbook.red-bean.com/read/
或本书的1.9版本:
https://book.mercurial-scm.org/read/index.html
| 归档时间: |
|
| 查看次数: |
668 次 |
| 最近记录: |