我有一个包含myrepo
的目录f1.txt
的仓库。
首先我将这些文件添加到repo
$ hg add
$ hg commit
Then I removed `f1.txt` and created `f2.txt` and made commit again
$ rm f1.txt
$ vim f2.txt # create file here
$ hg add
$ hg commit
现在,当我结帐上一次提交时,我看不到f1.txt
。为什么会这样?
我想可以在git中这样做!
答案 0 :(得分:2)
更新(checkout)到上一次提交时,实际上忘了提交删除f2.txt文件。因此,您仍然有未提交的更改,并且更新回上一个更改集不会还原f1.txt文件。
这是你可能在status
$ hg status
! f1.txt
您会看到f1.txt仍然缺失。
现在,要解决此问题,您实际上还需要提交删除文件。要做到这一点,最好使用addremove
,或者保留您提到的相同样本:
$ hg addremove
$ hg commit
'Then I removed `f1.txt` and created `f2.txt` and made commit again
$ rm f1.txt
$ vim f2.txt # create file here
$ hg addremove
$ hg commit
您的回购将按照您的预期进行。
更新到上一个变更集时,获得正确状态的另一种方法是更新和清理:
hg update -C
这将删除未提交的更改,并且f1.txt将返回。