从远程hg仓库清除旧目录和文件

时间:2015-09-22 16:12:02

标签: mercurial

我最初将我的项目提交到具有以下结构的hg回购:

myapp/
    fizz/
        buzz.txt
    foobar.cfg
    whistlefeather/
        vroom-vroom-party-starter.xml

我使用以下命令执行此操作:

hg add
hg commit -m "Initial commit."
hg push

然后我在本地更改了我的目录结构,如下所示:

myapp/
    buzz/
        fizz.txt
    config.foobar
    whistlefeather/
        vroom-vroom-party-starter.xml

然后我运行了以下相同的命令:

hg add
hg commit -m "Changing some things."
hg push

当我去远程仓库时,我发现它有以下结构(?!?):

myapp/
    fizz/
        buzz.txt
    buzz/
        fizz.txt
    foobar.cfg
    config.foobar
    whistlefeather/
        vroom-vroom-party-starter.xml

我可以运行哪些命令来从远程仓库中推送/清除旧目录/文件(以便它反映我本地计算机上的目录结构)?

2 个答案:

答案 0 :(得分:1)

您在第二次提交之前发出的hg add命令实际上并未从版本控制下删除文件,而只是添加了新文件。现在,您的存储库实际上是旧文件和新文件的混合。

要添加新文件并删除缺少的文件,请使用hg addremove命令或hg commit -A

答案 1 :(得分:0)

实际上很容易记住:

  • hg add将文件添加到repo
  • hg remove删除文件
  • hg move移动或重命名文件
  • hg addremove查看当前正在运行的目录,并在回购中添加和删除文件,以便仅继续跟踪仍然存在的文件。

这些操作中的每一个都可以按任何顺序完成。并且只有提交才会实际创建变更集