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