似乎ShelveExtension只会修改您修改过的文件,使其无法跟踪或删除。
我是Mercurial的新手并且来自git所以对我来说这不是预期的。
更大的问题我无法hg unshelve
我所假设的是一条错误消息。
见下文:
令人不安的变化'主'
暂时提交待处理的更改(使用'hg unshelve --abort'恢复)
重新搁置搁置的变更
abort:未提交的更改
这是预期的行为,我只是遗漏了什么?
如果不恢复/提交/等等,我怎么能取消修改我修改过的文件?
是否存在与git stash
完全相同的扩展程序?
重现的步骤:
环境:
操作系统:Windows 8
Mercurial:Mercurial Distributed SCM(版本3.0.1)。 安装为cygwin / usr / bin / hg(未安装Tortoisehg,已安装Windows hg但未使用)
扩展名:ShelveExtension。
答案 0 :(得分:2)
这是预期的行为,我只是遗漏了什么?
是的,这是正常行为。如果您希望Mercurial跟踪文件创建和删除,则需要hg addremove
(或手动hg add
和hg rm
单个文件)。应使用hg mv
重命名。这与git add
模糊地类似,不同之处在于您不需要为修改后的文件执行此操作。
当你取消搁置时,你的工作目录应该是干净的。至少,它不应该有任何丢失的文件(在!
中以hg st
为前缀),也不应该有任何修改过的文件(前缀为M
)。您可以随时进行临时提交并稍后hg strip
。
如果不恢复/提交/等等,我怎么能取消修改我修改过的文件?
在一般情况下,没有理智的方法可以做到这一点。如果工具架包含对不再存在的文件的更改,该怎么办?如果已提交文件删除,则可能会生成修补程序冲突,这就是Mercurial所做的事情。但是,如果没有承诺与之发生冲突,对这种情况没有明显的反应。
是否存在与
git stash
完全相同的扩展程序?
据我所知,但这超出了StackOverflow的范围。