【问题标题】:How to get changes to .hgignore honored in remote repo如何在远程仓库中获得对 .hgignore 的更改
【发布时间】:2016-01-28 13:59:38
【问题描述】:

我最近将一些更改推送到 Mercurial 存储库(远程服务器)并意识到我的 .hgignore 配置错误,因为某些文件(二进制文件等)包含在应该被忽略的提交/推送中。

所以我调整了我的.hgignore 并让它变得完美,然后推动这个改变。令我惊讶的是,远程服务器的 web ui (RhodeCode) 仍然将“坏”文件显示为属于 repo。我原以为它们会被自动剔除,因为它们违反了.hgignore

所以看起来我需要在本地做一些魔法,让我的工作副本尊重忽略更改,然后推送这些更改。也许从跟踪中删除文件?

作为一个具体的例子,在我的回购根目录中我有myapp-meta.bin。所以在.hgignore 中,我为*.bin 添加了一个条目。为了从跟踪中删除*.bin(但不是文件系统!),我需要执行哪些确切的命令,这样它们就不会出现在远程仓库的最新/头版本中?

另外,hg 有什么类似于 Git 的试运行 (git add . -n) 吗?将来在我真正开始做之前看看添加到跟踪中会很方便!

【问题讨论】:

    标签: mercurial hgignore


    【解决方案1】:

    您已经添加了myapp-meta.bin,因此尽管您稍后将其添加到.hgignore,但它仍会被跟踪。如果您从 repo 中删除它,它将不会显示为新文件并且会被忽略。

    至于试运行,很多命令(hg add 也在其中)支持-n--dry-run 选项。

    【讨论】:

    • 谢谢@Paul (+1) - 像hg addremove 这样的东西怎么样?我真的不想从文件系统中删除它,因为它是要生成的 PITA(相信我)。此命令是否会从跟踪中删除文件,与.hgignore 所做的有所不同?如果是这样,您能否提供一个将它与我的 bin 文件一起使用的示例?
    • 您希望该文件在存储库中,同时让 Mercurial 忽略对该文件的更改吗?或者你只是想从 repo 中删除文件,但在本地保存它?
    • 使用hg forget 使 Mercurial 停止跟踪文件而不将其从文件系统中删除。
    猜你喜欢
    • 2021-09-11
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    • 2013-08-05
    相关资源
    最近更新 更多