40

我安装了 hg shelve(不是阁楼)扩展,我想删除一个补丁。在 git 中它会是git stash drop. 我如何使用搁置扩展来做到这一点?

4

4 回答 4

41

Mercurial 搁置文档(或使用hg help shelve):

要删除特定搁置的更改,请使用“--delete”。要删除所有搁置的更改,请使用“--cleanup”。

选项:

-d --delete 删除命名搁置的更改

因此,如果您的补丁被调用my-patch,那么您将使用以下命令将其删除:

hg shelve -d my-patch
于 2014-08-28T21:23:27.467 回答
32

如果您不想使用货架,您可以通过以下方式进行操作。

hg diff > mylocalchanges.txt
hg revert -a
# Do your merge here, once you are done, import back your local mods
hg import --no-commit mylocalchanges.txt
于 2012-05-01T19:22:22.343 回答
26

Mercurial shelve 扩展将补丁存储在 .hg/shelved 下。每一个都是一个简单的补丁文件,文件名就是补丁的名字。因此,要删除名为“mypatch”的补丁,我可以简单地从 .hg/shelved 中删除文件“mypatch”:

rm .hg/shelved/mypatch

于 2012-04-03T20:41:06.283 回答
0

我根据 minaz 的回答创建了两个 shell 脚本:

搁置

#!/bin/sh
hg diff > $1 && hg revert -a

hgunshelve

#!/bin/sh
hg import --no-commit $1 && trash $1

把它们放进去~/bin。您需要sudo apt-get install trash-clitrash命令(或修改脚本以不删除补丁文件,或根据rm需要使用)。

于 2013-01-31T18:37:26.893 回答