hg中类似于git stash的命令是什么?

6

在hg中,git stashgit stash applygit stash pop有哪些对应的命令?


1
请查看 shelve — 也可以先尝试一般搜索。https://dev59.com/w2kw5IYBdhLWcg3wSoks#10001059,https://markheath.net/post/git-stash-for-mercurial-users - user2864740
请注意,Git的git stash非常复杂,而hg shelve则不是,因此您可能不认为它们是“等效的”。 - torek
2个回答

7

暂时搁置您的更改:

Mercurial 推荐使用 hg commit [-s], 不推荐使用 hg shelve

Git git stash

列出已搁置的更改:

Mercurial 使用 hg xlhg shelve -l

Git git stash list

查看已搁置的更改:

Mercurial 使用 hg diff -c <rev>hg shelve -p <name>

Git git stash show <name>

恢复已搁置的更改:

Mercurial 使用 hg uncommit --no-keephg unshelve

Git git stash pop

恢复已搁置的更改,但保留在栈中:

Mercurial 继续修改或使用 hg uncommit --keephg unshelve --keep

Git git stash apply


5
我经常使用hg shelve,为什么你说它不被推荐? - StayOnTarget
这些命令在哪个版本的Hg中被支持?我正在运行3.5.2版本(在Windows上),但是uncommit、hg xl等命令在该版本中无效。 - raddevus
Mercurial 版本 5.1 在 Windows 上发布。请参见:https://wiki.mercurial-scm.org/ShelveExtension,其中写道:“从 Mercurial 5.1 开始,shelve 已成为 Mercurial 核心的一部分,并默认启用。”但是,页面顶部有一个标题,讨论如何使用它作为扩展程序:“此扩展程序随 Mercurial 2.8 及更高版本一起分发。如果您使用较早版本的 Mercurial,请参阅 ThirdPartyShelveExtension。”最后一组关键字链接到此处:https://wiki.mercurial-scm.org/ThirdPartyShelveExtension。 - Clomp

0

我使用mq扩展来实现这个功能(默认情况下未启用)。该扩展使我能够拥有一组(尚未完成的)补丁,我将其保持在“官方”历史记录之上。

您可以使用git stash的方式现在变成了hg qnew »patchname« && hg qpop,而git stash pop现在变成了hg qpush。最明显的区别是,在mercurial中必须为您的补丁命名,而git变体则可以匿名存在。

Steve Losh撰写了一篇更加深入的文章介绍了这个扩展还可以做什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接