我在本地计算机上创建了一个新的存储库,添加了文件并提交,在我的工作副本中提供了以下结构:
-/a
-/b
我想把我的初始提交推送到Bitbucket上的远程存储库。但是,我想忽略目录b
,这样它就不会被推送。我添加了
syntax:
glob b/**
到我的.hgignore
文件。b
目录无论如何都会被推送。
我该如何防止这种情况发生?
这在Mercurial中是无法做到的:您不能只推送文件的初始版本,然后忽略以后的修改。你也可以不推一个变更集的一部分——你要么推整个变更集,要么不推。通过这种方式,Mercurial确保您在所有克隆中都有一个一致的项目快照。
Preet在写.hgignore
文件是未跟踪文件的过滤器时是正确的。.hgignore
文件用于过滤hg status
等命令的输出,并过滤通过运行hg add
添加的文件,而不需要其他参数。
在.hgignore
中添加:
^b/.*
或者b/*
,如果您使用的是较差的glob
语法(regex为您提供了更多的控制)。
语法在第一行定义,所有规则在后面的单独行中定义。
如果您想要globbing,第一行将是syntax: glob
,如果是regex,第一行则是syntax: regexp
(默认情况下隐含)。请参阅文档。
请注意,mercurial实际上并没有推送空目录,因此您能够测试它的唯一方法是如果您在b/
中有一个文件