从Mercurial中的提交中删除文件

时间:2013-09-13 01:54:26

标签: mercurial

我有一个提交,我修改了一些文件。其中一些文件是我在此提交中不想要的修订的一部分。 Mercurial中是否有一种方法可以从提交中删除某些文件而不会丢失我对它们所做的更改?谢谢。

步骤:

  1. 做了一些改变
  2. hg commit -m
  3. 做了一些更改(其中一些文件被意外修改)
  4. hg修正

2 个答案:

答案 0 :(得分:72)

试试:

hg forget somefile.txt
hg commit --amend

如果文件是新的(即您使用了hg add)。

如果该文件已存在,请尝试:

cp somefile.txt somefile.txt.bak
hg revert somefile.txt --rev .~1
hg commit --amend

这基本上告诉revert文件(somefile.txt)回到它之前的状态(--rev .~1)。

只需确保在输入命令之前备份您要恢复的文件,这样您就不会丢失更改。我的印象是mercurial会自动为你做这件事,但经过快速测试后我不太确定。

答案 1 :(得分:0)

ID Name Department HasDirectReport HasWrongTitle 100 John Doe1 Admin True False 101 John Doe2 IT False True 102 John Doe3 HR True False 103 John Doe4 Finance True True 正是为我做的。

就像普通的hg uncommit somefile.txt一样,它从提交中删除了更改,但文件内容保持不变,所以现在git reset显示了您刚刚未提交的更改。

hg diff命令声称来自uncommit扩展名,但实际上可能来自uncommit扩展名,我承认我不确定100%!