灵感来自Git的初学者:最终的实用指南.
这是一个信息使用水银为汇编初学者的实际使用.
初学者 - 一个已经触及源代码控制而不太了解它的程序员.
实用 - 涵盖大多数用户经常遇到的情况 - 创建存储库,分支,合并,从/向远程存储库提取/推送等.
备注:
- 解释如何完成某些事情而不是如何实现某些事情.
- 每个答案处理一个问题.
- 尽可能简明扼要地回答.
- 编辑/扩展现有答案,而不是在同一主题上创建新答案.
- 请为想要了解更多信息的人提供Mercurial wiki或HG Book的链接.
问题:
有一个提交只是没有用,所以我想放弃它而不从历史中删除它.
我已经从早期版本更新并承诺,从而创建了一个新的头脑.
我没有分支机构,我不想要分支机构,我只想简单地继续使用新的头部,没有花哨,没有合并,没有后顾之忧,只是继续忘记前一个.
我似乎无法找到如何做到这一点,我开始相信它无法完成.我发现的只是关于分支的东西,或者关于合并的东西.
mercurial命令有什么区别,
hg striphg backouthg revert所有这些命令基本上用于恢复/撤消先前变更集的效果.
我刚刚开始使用Mercurial,而且我遇到了一些我不理解的东西.
我对几个文件进行了更改,现在我想撤消对其中一个文件所做的所有更改(即返回上一次提交一个特定文件).
据我所见,我想要的命令是还原的.
在我链接的页面中,有以下声明:
但是,此操作不会更改工作目录的父修订版(或未提交合并时的修订版).要撤消未注册的合并,可以使用"hg update -C -r".这将把父母重置为第一个父母.
我不明白两者之间的区别(hg revertvs. hg update -C -r).任何人都可以告诉我这个区别吗?在我的情况下,我真的希望还原或更新摆脱我对文件所做的更改吗?
我不小心提交了我的本地存储库.更具体地说,当我打算一次提交一个文件时,我同时对大量文件进行了更改.
如何撤消此提交并将我的工作副本恢复到提交之前的状态,这样我就可以做我应该做的事情了?
提交后我没有推或拉或其他任何东西.
您可能怀疑这是重复的,因此我将解释为什么以下问题不同,或者不回答我的问题:
对此问题的回答表明,您可以执行此操作hg commit --amend,但不解释如何执行此操作或举例说明.mercurail帮助也没有为我说明.
国家使用hg rollback.这个命令显然已被弃用了,我还是尝试使用它,但是我得到了混乱:没有可用的回滚信息.遗憾的是,这不起作用,因为这将是一种非常直观的方式来实现我想要的.
无论hg revert和hg backout恢复由前版本所做的更改.两者有什么区别?
自Mercurial上次提交以来,您如何放弃所有存储库更改?
我不认为这是revert命令,因为这实际上会将工作目录更新为最后一次提交.我只想撤消存储库中的更改(添加文件,删除文件等).
但是,我是Mercurial的新手,所以我可能会遗漏一些东西.
这与暂时将工作副本切换到特定的 Git 提交基本上是相同的问题,但适用于 Mercurial。
假设修订版 500 是我在 Mercurial 中提交的最后一个修订版。我又做了一些工作,并意识到早期版本中出了问题。所以,我已经“git stashed”,也就是说,hg shelved 我当前的更改,所以我处于干净的修订版 500。
现在我想做的是检查版本499,重建软件,看看是否仍然有错误;如果是,检查版本498,重建软件,看看是否仍然有错误;如果是,修订497,重建软件,看看是否还有错误;等等,直到我弄清楚哪个版本引入了错误。
完成此操作后,我想返回到修订版 500(unshelve我之前的工作),添加修复,然后进行新的提交(这将是修订版 501)。这意味着当我回顾历史时,我不想重置任何东西,也不想从那里上演任何东西。
在 git 中,我可以git checkout HASH回顾历史,一旦完成,git checkout master就回到提示。我应该在 Mercurial 中使用哪些命令?