如何Hg Shelve添加了尚未提交的文件

时间:2012-11-01 16:12:45

标签: mercurial shelving

我正在使用Mercurial Shelve extension来保留命令行的更改。它很好用,除非我想搁置的更改包含工作目录中的新添加文件(a)。基本上,除了新添加的文件外,它还可以上架。我通过查看.hg / shelve存储的更改来检查这一点。

如何搁置新添加的文件(状态)?

5 个答案:

答案 0 :(得分:10)

此响应已过期,但您可以使用以下命令搁置所有文件(跟踪/未跟踪):

hg shelve -A

hg shelve --addremove

关于此命令,文档说:

  

在搁置之前添加/删除新/丢失文件

您必须注意使用此功能,因为在取消操作后,您的旧未跟踪文件会被跟踪。 如果在hg commit命令中未指定文件,则这些文件已在最后一次提交时提交。你应该使用hg忘记,如果你想再次解开它们。

答案 1 :(得分:8)

我假设您正在谈论当前未跟踪的文件?你需要添加第一个。

所以只需为您的新文件hg add,然后hg shelve也会搁置它们。

答案 2 :(得分:4)

谢谢汤姆。我正在使用Mac,所以它没有真正起作用。什么工作是另一个mercurial扩展“hgattic”,你可以在我的博客中阅读更多

http://margotskapacs.com/2012/10/shelving-uncommitted-changes-in-mercurial/

(参见“Bug - 添加文件无法搁置”一节)

答案 3 :(得分:1)

作为一个主要是Git的用户,我发现Atlassian SourceTree是处理我必须使用的奇怪的Mercurial仓库的最简单方法。它内置了搁架。价格合适(免费)。

免责声明:我为Atlassian工作

答案 4 :(得分:0)

如果命令行不是绝对必要的:

然后输入(在Linux上)

thg shelve

这使您可以轻松搁置已添加(但尚未提交)的文件。