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