18

我正在使用 Mercurial Shelve 扩展从命令行搁置更改。它工作得很好,除非我想搁置的更改在工作目录中包含新添加的文件(a)。基本上,它会搁置除新添加的文件之外的所有内容。我通过查看 .hg/shelve 存储的更改来检查这一点。

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

4

5 回答 5

13

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

hg shelve -A

或者

hg shelve --addremove

关于这个命令,文档说:

在搁置之前将新/丢失的文件标记为添加/删除

您必须注意使用此功能,因为在取消搁置后,您的旧未跟踪文件会被跟踪。如果在 hg commit 命令中没有指定文件,这些文件已经在最后一次提交中提交。如果您想再次取消跟踪它们,您应该使用 hg forget。

于 2015-10-08T12:15:57.227 回答
9

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

因此,只需hg add为您的新文件执行此操作,然后hg shelve也将它们搁置。

于 2014-09-19T20:13:52.250 回答
4

谢谢你,汤姆。我正在使用Mac,所以它并没有真正起作用。起作用的是另一个反复无常的扩展“hgattic”,您可以在我的博客中阅读更多信息

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

(请参阅“错误 - 添加的文件无法搁置”部分)

于 2012-11-03T01:30:45.900 回答
0

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

然后只需键入(在 Linux 上)

thg shelve

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

于 2012-11-01T20:44:21.520 回答
0

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

免责声明:我为 Atlassian 工作

于 2014-07-17T02:05:58.933 回答