【问题标题】:mercurial discard all added files prior to a commitmercurial 在提交之前丢弃所有添加的文件
【发布时间】:2012-11-22 10:35:53
【问题描述】:

刚刚犯了一个错误,使用addremove尝试删除一些没有使用hg remove而被删除的文件

现在有数百个文件将在下一次提交时添加

我是否可以快速删除所有这些添加的文件,而无需手动使用 bash 脚本或更糟糕的 hg removingforgetting 每个文件?

【问题讨论】:

    标签: mercurial


    【解决方案1】:

    如果您只想使用内部hgcommands,您可以执行以下操作:

    hg forget "set:added()"
    

    这将忘记工作目录中标记为“已添加”的任何文件。它利用了 Mercurial 相当强大的filesets 功能。

    您可以在指定文件时使用其他过滤器,从而轻松修复其他错误。例如,轻松重新添加已删除的文件,但没有别的 hg add "set:removed()"。该功能类似于(幸好比)mercurial revsets,并且可以通过以下方式进行研究:

    hg help filesets
    

    【讨论】:

    • 不知道这个。有时我必须看看它。谢谢!
    • Mercurial 是一个很棒的工具,但它的一些功能隐藏得非常好,除非你找对了地方:)
    【解决方案2】:

    你可以很容易地在命令行上使用类似的东西:

    hg status --added --no-status | xargs hg forget
    

    这应该会忘记自上次提交以来添加的所有文件。

    我可以建议将您不想添加的文件添加到 .hgignore 文件中,这样就不会再发生这种情况了吗?

    【讨论】:

    • 这是我在 mercurial Tips tricks wiki 上找到它后使用的方法,但另一种方法很有吸引力,因为它不是特定于平台的
    猜你喜欢
    • 2019-08-08
    • 2011-10-22
    • 2011-02-15
    • 1970-01-01
    • 2018-05-29
    • 2021-10-15
    • 2018-10-09
    • 2022-08-18
    • 2012-08-17
    相关资源
    最近更新 更多