暂时搁置您的更改:
Mercurial 推荐使用 hg commit [-s]
,
不推荐使用 hg shelve
Git
git stash
列出已搁置的更改:
Mercurial 使用 hg xl
或 hg shelve -l
Git
git stash list
查看已搁置的更改:
Mercurial
使用 hg diff -c <rev>
或 hg shelve -p <name>
Git
git stash show <name>
恢复已搁置的更改:
Mercurial
使用 hg uncommit --no-keep
或 hg unshelve
Git
git stash pop
恢复已搁置的更改,但保留在栈中:
Mercurial
继续修改或使用 hg uncommit --keep
或 hg unshelve --keep
Git
git stash apply
我使用mq扩展来实现这个功能(默认情况下未启用)。该扩展使我能够拥有一组(尚未完成的)补丁,我将其保持在“官方”历史记录之上。
您可以使用git stash
的方式现在变成了hg qnew »patchname« && hg qpop
,而git stash pop
现在变成了hg qpush
。最明显的区别是,在mercurial中必须为您的补丁命名,而git变体则可以匿名存在。
Steve Losh撰写了一篇更加深入的文章介绍了这个扩展还可以做什么。
shelve
— 也可以先尝试一般搜索。https://dev59.com/w2kw5IYBdhLWcg3wSoks#10001059,https://markheath.net/post/git-stash-for-mercurial-users - user2864740git stash
非常复杂,而hg shelve
则不是,因此您可能不认为它们是“等效的”。 - torek