Version control 在Mercurial中将已提交的变更集转换为未提交的变更

Version control 在Mercurial中将已提交的变更集转换为未提交的变更,version-control,mercurial,dvcs,Version Control,Mercurial,Dvcs,是否有方法将单个提交(例如,我的本地存储库中的提示更改集)转换为工作目录中未提交的更改? 我知道hg strip会删除指定的变更集并对其进行备份,但它会将这些变更集转换为工作目录中未受限制的变更吗 编辑: 关于使用hg rollback 如果在我想执行hg rollback之前有未提交的更改,该怎么办?我必须先做这些吗?最后几次呢?sequentialhg rollback是否将这些提交的更改堆叠到现有的未提交更改 如果您试图重做上一次提交(可能是使用更好的提交消息,可能是修复了错误),那么现在

是否有方法将单个提交(例如,我的本地存储库中的提示更改集)转换为工作目录中未提交的更改?
我知道
hg strip
会删除指定的变更集并对其进行备份,但它会将这些变更集转换为工作目录中未受限制的变更吗

编辑:

关于使用
hg rollback

如果在我想执行
hg rollback
之前有未提交的更改,该怎么办?我必须先做这些吗?最后几次呢?sequential
hg rollback
是否将这些提交的更改堆叠到现有的未提交更改

如果您试图重做上一次提交(可能是使用更好的提交消息,可能是修复了错误),那么现在应该使用

$hg提交--修改

更新最后一次提交。这比如下所述使用
hg rollback
安全得多

如果提交是最后一次提交,并且没有在任何地方更新,则可以使用
hg rollback
。请阅读
hg help rollback
-这是一个潜在的破坏性命令

它的作用:
hg rollback
将回滚存储库中的最后一个。每次您
hg提交
hg拉
hg解压
等时,都会创建一个新事务。当所有内容都安全存储后,Mercurial将关闭事务。如果在事务中间出错,则可以恢复(参见<代码> HG恢复< /代码>)。您还可以使用
hg rollback
手动回滚上一个事务。请参见
hg rollback--dry run
,以预览该命令将执行的操作

“回滚”命令不会触及您的工作副本。这意味着以前显示为已修改的文件将再次显示为已修改。所以这很容易做到

$ hg commit -m "Fixed buug-123"
Ups,在提交消息中输入错误!让我们解决这个问题:

$ hg rollback
$ hg commit -m "Fixed bug-123"
(使用
hgcommit--amend
代替Mercurial 2.2及更高版本。)

最后一条提交消息也保存在
.hg/last message.txt
中,因此,如果shell历史记录中没有该消息,您可以从中恢复它


如果在执行hg回滚之前有未限制的更改,该怎么办?我必须先做这些吗


回滚不接触工作副本。这意味着工作副本中的任何其他更改将与更改集中的更改一起出现。就好像你根本没有输入hg commit一样

最后几次呢?顺序hg回滚是否将这些提交的更改堆叠到现有的未限制更改

不,您只有,因为我们只跟踪上一笔交易

如果您试图重做上一次提交(可能是使用更好的提交消息,可能是修复了错误),那么现在应该使用

$hg提交--修改

更新最后一次提交。这比如下所述使用
hg rollback
安全得多

如果提交是最后一次提交,并且没有在任何地方更新,则可以使用
hg rollback
。请阅读
hg help rollback
-这是一个潜在的破坏性命令

它的作用:
hg rollback
将回滚存储库中的最后一个。每次您
hg提交
hg拉
hg解压
等时,都会创建一个新事务。当所有内容都安全存储后,Mercurial将关闭事务。如果在事务中间出错,则可以恢复(参见<代码> HG恢复< /代码>)。您还可以使用
hg rollback
手动回滚上一个事务。请参见
hg rollback--dry run
,以预览该命令将执行的操作

“回滚”命令不会触及您的工作副本。这意味着以前显示为已修改的文件将再次显示为已修改。所以这很容易做到

$ hg commit -m "Fixed buug-123"
Ups,在提交消息中输入错误!让我们解决这个问题:

$ hg rollback
$ hg commit -m "Fixed bug-123"
(使用
hgcommit--amend
代替Mercurial 2.2及更高版本。)

最后一条提交消息也保存在
.hg/last message.txt
中,因此,如果shell历史记录中没有该消息,您可以从中恢复它


如果在执行hg回滚之前有未限制的更改,该怎么办?我必须先做这些吗


回滚不接触工作副本。这意味着工作副本中的任何其他更改将与更改集中的更改一起出现。就好像你根本没有输入hg commit一样

最后几次呢?顺序hg回滚是否将这些提交的更改堆叠到现有的未限制更改

不,您只有,因为我们只跟踪最后一笔交易。

任何更简单的变更集(或变更集集集)都可以通过(折叠|展开变更集)转换为本地变更

(对于旧GUI)逐步显示操作

任何更容易转换为本地更改的更改集(或更改集集集)(折叠|展开更改集)


(对于旧GUI)一步一步地显示操作

尽管您可能应该在可能的情况下使用
hg commit--ammend
,但我现在更喜欢新的更强大的mecurial历史编辑功能:特别是如果您熟悉git的话


您只需执行一个
hg out
(即您想要选择尚未推送的版本),就可以看到您想要返回的版本。

尽管您可能应该尽可能使用
hg commit--ammend
,但我现在更喜欢新的、更强大的mecurial历史编辑功能:特别是如果您熟悉git的话


您只需执行一个
hg out
(即您想要选择尚未推送的修订版),就可以看到您想要返回的修订版。

如果我在返回之前有未限制的更改,该怎么办