【问题标题】:Mercurial: R with 'hg status', how to commit?Mercurial:带有'hg status'的R,如何提交?
【发布时间】:2010-10-14 09:33:12
【问题描述】:

如果我执行“hg status”并看到以下内容:

R flash/AC_OETags.js

这似乎意味着那里没有文件,但在某个时候有一个文件已被删除。

如何“提交”此更改,以便在执行“hg status”时停止显示?

==更新==

答案似乎是提交文件。实际上,有大约 100 个状态为 R 的文件,因为我删除了整个目录树。有人知道如何一次性提交目录树中的所有文件吗?

我不想只做hg commit,因为还有其他变化。

【问题讨论】:

    标签: mercurial


    【解决方案1】:

    “R”表示“已删除”,因此下次我们在 Mercurial 中提交时,该文件将被删除。 (文件的历史将保留在存储库中,所以我们当然可以随时取回它)。

    因此运行你的 hg commit 命令,一切都会好起来的

    感谢 hginit.com 提供的花絮 - 这是我的 Mercurial 圣经

    【讨论】:

    • 谢谢。我不只是想运行'hg commit',因为我有大量其他未提交的文件。你知道我怎样才能提交 /flash 目录中的所有内容吗?
    • 如果您可以访问本地计算机来安装文件,然后安装 Tortoise Hg,然后自行提交该 1 更改摇头,我不敢相信我刚才说过哈哈
    • 或者只提交已删除的文件 -- "hg commit file_you_removed" 无需为此使用 GUI。
    • 我的文件不会消失,即使提交。注意:我的文件是一个大文件,它的路径已更改。但提交文件并不会将其从 mercurial 状态中删除。
    【解决方案2】:

    你可以只提交那个文件:

    hg commit flash/AC_OETags.js
    

    然而,拥有“大量其他未提交的文件”是一个糟糕的过程。你需要想出一个让你经常提交的工作流程。

    【讨论】:

    • 太真实了!有没有办法提交“目录中的所有文件”,你知道吗?
    • 有大量未提交的已删除文件的原因是我删除了整个目录树。然后我必须单独提交每个文件吗?!
    • 当然,只需执行hg commit directory 即可提交目录及以下目录中的文件。或者使用-I-X 模式根据需要包含/排除。使用此处定义的模式:selenic.com/mercurial/hg.1.html#file-name-patterns
    • "hg commit single_file" 给出:"abort: 不能部分提交合并(不指定文件或模式)"
    • 当我这样做时,它会失败并显示“文件未跟踪”
    【解决方案3】:

    您可以使用 TortoiseHg 的存储库资源管理器来轻松管理要包含在提交中的文件。

    此外,删除目录可能需要更改集本身。你应该养成更频繁地提交的习惯(一个概念,一个提交......无论如何它都是本地的)。此外,只要您没有将您的更改推送给任何人(或从您那里拉出的任何人),如果您认为您已经分开太多(这是一个更高级的功能,我建议您先在测试存储库上尝试,因为如果您不小心可能会破坏)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-06
      • 1970-01-01
      • 2014-11-29
      相关资源
      最近更新 更多