Mercurial 如何在远程repo中获取对.hg的更改
我最近对Mercurial repo(远程服务器)进行了一些更改,并意识到我的Mercurial 如何在远程repo中获取对.hg的更改,mercurial,hgignore,Mercurial,Hgignore,我最近对Mercurial repo(远程服务器)进行了一些更改,并意识到我的.hgignore配置错误,因为提交/推送中包含了某些本应被忽略的文件(二进制文件等) 所以我调整了我的.hgignore,使它变得完美,然后推动这一改变。令我惊讶的是,远程服务器的web ui(RhodeCode)仍然显示“坏”文件属于repo。我本以为它们会被自动剔除,因为它们违反了.hgignore 因此,看起来我需要在本地执行一些魔术,使我的工作副本尊重忽略更改,然后推动这些更改。也许从跟踪中删除文件 作为一个
.hgignore
配置错误,因为提交/推送中包含了某些本应被忽略的文件(二进制文件等)
所以我调整了我的.hgignore
,使它变得完美,然后推动这一改变。令我惊讶的是,远程服务器的web ui(RhodeCode)仍然显示“坏”文件属于repo。我本以为它们会被自动剔除,因为它们违反了.hgignore
因此,看起来我需要在本地执行一些魔术,使我的工作副本尊重忽略更改,然后推动这些更改。也许从跟踪中删除文件
作为一个具体的例子,在我的repo根目录中,我有myapp meta.bin
。因此在.hgignore
中,我为*.bin
添加了一个条目。为了从跟踪中删除*.bin
(但不是文件系统!),使它们不会显示在远程回购的最新/head版本中,我需要执行哪些确切的命令
另外,
hg
是否有类似于Git的试运行(Git add.-n
)的内容?在我真正开始做跟踪之前,看看跟踪中会添加什么会很方便 您已经添加了myapp meta.bin
,因此尽管您后来将其添加到.hgignore
中,它还是会被跟踪。如果您从回购中删除它,它将不会显示为新文件,并将被忽略
至于干运行,许多命令(其中包括
hgadd
)都支持-n
或-dry-run
选项。您已经添加了myapp meta.bin
,因此尽管您后来将其添加到了.hgignore
,它还是会被跟踪。如果您从回购中删除它,它将不会显示为新文件,并将被忽略
至于干运行,许多命令(其中包括
hgadd
命令)支持-n
或-dry-run
选项。谢谢@Paul(+1)-类似hgaddremove
的命令怎么样?我真的不想从文件系统中删除它,因为它是一个需要生成的PITA(相信我)。此命令是否会以某种方式与.hgignore
不同的方式从跟踪中删除文件?如果是这样的话,您能提供一个将其与我的bin文件一起使用的示例吗?您是否希望该文件位于repo中,同时让Mercurial忽略对该文件的更改?或者您只是想从repo中删除该文件,但将其保存在本地?使用hg-forget
使Mercurial停止跟踪该文件,而不将其从文件系统中删除。谢谢@Paul(+1)-类似hg-addremove
的方法如何?我真的不想从文件系统中删除它,因为它是一个需要生成的PITA(相信我)。此命令是否会以某种方式与.hgignore
不同的方式从跟踪中删除文件?如果是这样的话,您能提供一个将其与我的bin文件一起使用的示例吗?您是否希望该文件位于repo中,同时让Mercurial忽略对该文件的更改?或者您只是想从repo中删除该文件,但在本地保留它?使用hg-forget
使Mercurial停止跟踪该文件,而不将其从文件系统中删除。