如何放弃所有本地更改,包括未版本控制的文件?

我正在移动构建过程以使用mercurial,并希望将工作目录恢复到最终修订状态。 早期的构建过程将修改一些文件并添加一些我不想提交的文件,因此我有本地更改和未添加到存储库的文件。

什么是最简单的方法来丢弃所有这些,并得到一个干净的工作目录,具有最新版本?

目前我正在这样做:

hg revert --all
<build command here to delete the contents of the working directory, except the .hg folder.>
hg pull
hg update -r MY_BRANCH

但似乎应该有一个更简单的方法。

我想做相当于删除回购,做一个新的克隆和更新。 但回购对于速度来说太大了。


这些步骤应该能够缩短为:

hg pull
hg update -r MY_BRANCH -C

-C标志通知更新命令在更新之前放弃所有本地更改。

但是,这可能仍会在存储库中留下未跟踪的文件。 这听起来像你也想摆脱这些,所以我会使用purge延伸:

hg pull
hg update -r MY_BRANCH -C
hg purge

无论如何,没有任何一个命令可以让Mercurial执行,它将执行您想要的任何操作,除非您将该过程更改为您所说的“完全克隆”方法。


hg up -C

这将删除所有更改并更新到当前分支中的最新头部。

你可以打开清除扩展,以便能够删除所有未版本控制的文件。


要删除没有清除扩展名的* nix,请使用

hg pull
hg update -r MY_BRANCH -C
hg status -un|xargs rm

正在使用哪个

更新-r --rev修订版本

更新-C - 清除丢弃未提交的更改(无备份)

状态-u - 未知仅显示未知(未跟踪)的文件

状态-n - 无状态隐藏状态前缀

链接地址: http://www.djcxy.com/p/37573.html

上一篇: How to discard all local changes including to unversioned files?

下一篇: Is there any way to delete local commits in Mercurial?