3

在 CVS 中,有时我会“用最新的从头替换”以放弃对文件的本地更改,因为本地更改可能会被搞砸,并且希望从该文件重新开始,同时保留对其他文件所做的任何未提交的本地更改. 如何在 Mercurial 和 Git 中做同样的事情?

4

3 回答 3

3

对于 Mercurial,请使用hg revert. 见hg help revert

编辑

为了澄清,hg revert文件更改为以前的版本。 hg update父变更集更改为不同的修订。在这两种情况下,除非使用,否则未提交的更改将被保留-C

于 2012-04-17T15:30:14.423 回答
3

在 GIT 中,如果您进行了尚未提交的本地更改,则:

git reset --hard

将做两件事:1)从“索引”中删除内容(您已准备提交的内容)和 2)删除工作目录中的内容(您尚未准备提交的内容)。除了“--hard”还有其他选项,因此请使用“git help reset”检查文档 - 但是,根据您的问题,“--hard”将是选项。

如果您要撤消单个文件,那么

git checkout -- /path/to/file

会成功的。[参见 'git status' 的输出,它描述了如何撤消一些更改]。

于 2012-04-17T15:33:18.917 回答
2

对于 Mercurial: hg revert fileName将把该文件恢复到您所在的版本。

这将生成一个 fileName.orig 文件,因此您可以保留要还原的更改以防万一。如果要还原文件并且没有 .orig 文件,可以添加-C选项: hg revert fileName -C

于 2012-04-26T00:11:16.987 回答