【发布时间】:2012-10-22 06:40:33
【问题描述】:
我正在使用 Mercurial Shelve extension 从命令行搁置更改。它工作得很好,除非我想搁置的更改在工作目录中包含新添加的文件(a)。基本上,它会搁置除新添加的文件之外的所有内容。我通过查看 .hg/shelve 存储的更改来检查这一点。
如何搁置新添加的文件(一种状态)?
【问题讨论】:
-
未跟踪的文件不一定要搁置,因为后续的 HG 操作不会影响它们。
我正在使用 Mercurial Shelve extension 从命令行搁置更改。它工作得很好,除非我想搁置的更改在工作目录中包含新添加的文件(a)。基本上,它会搁置除新添加的文件之外的所有内容。我通过查看 .hg/shelve 存储的更改来检查这一点。
如何搁置新添加的文件(一种状态)?
【问题讨论】:
此回复逾期,但您可以使用以下命令搁置所有文件(跟踪/取消跟踪):
hg shelve -A
或
hg shelve --addremove
关于这个命令,文档说:
在搁置之前将新/丢失的文件标记为添加/删除
您必须注意使用此功能,因为在取消搁置后,您的旧未跟踪文件会被跟踪。 如果在 hg commit 命令中没有指定文件,这些文件已经在最后一次提交中提交。如果你想再次取消跟踪,你应该使用 hg forget。
【讨论】:
我假设您在谈论当前未跟踪的文件?您需要添加第一个。
所以只需为您的新文件执行hg add,然后hg shelve 也会将它们搁置。
【讨论】:
谢谢汤姆。我正在使用Mac,所以它并没有真正起作用。起作用的是另一个反复无常的扩展“hgattic”,您可以在我的博客中阅读更多信息
http://margotskapacs.com/2012/10/shelving-uncommitted-changes-in-mercurial/
(请参阅“错误 - 添加的文件无法搁置”部分)
【讨论】:
如果命令行不是绝对必要的:
然后只需键入(在 Linux 上)
thg shelve
这使您可以轻松搁置已添加(但尚未提交)的文件。
【讨论】:
作为一个主要使用 Git 的用户,我发现 Atlassian SourceTree 是处理我必须使用的奇怪 Mercurial 存储库的最简单方法。它内置了搁板。价格也合适(免费)。
免责声明:我为 Atlassian 工作
【讨论】: