我最近将一些更改推送到 Mercurial 存储库(远程服务器),并意识到我的.hgignore
配置错误,因为某些文件(二进制文件等)包含在提交/推送中,应该忽略
所以我调整了我的.hgignore
,让它变得完美,然后推动这个变化。令我惊讶的是,远程服务器的Web UI(RhodeCode)仍然显示属于存储库的"坏"文件。我本来希望它们会被自动剔除,因为它们违反了.hgignore
.
所以看起来我需要在本地做一些魔术,让我的工作副本尊重忽略的更改,然后推送这些更改。也许从跟踪中删除文件?
举个具体的例子,在我的回购根目录中,我有myapp-meta.bin
.因此,在.hgignore
中,我为*.bin
添加了一个条目。我需要执行哪些确切的命令才能从跟踪中删除*.bin
(但不是文件系统!),以便它们不会显示在远程存储库的最新/头版本中?
另外,hg
是否有类似于 Git 的试运行(git add . -n
)的东西?将来在我实际继续这样做之前查看将添加到跟踪中的内容会很方便!
您已经添加了myapp-meta.bin
,因此尽管您稍后将其添加到.hgignore
,但仍会对其进行跟踪。如果将其从存储库中删除,它将不会显示为新文件,并且将被忽略。
至于试运行,许多命令(其中hg add
)支持-n
或--dry-run
选项。