我讨厌看到我的存储库中的每个目录列出每个文件两次,一次在前面有一个点,一次没有。我尝试将.*
添加到我的.hgignore文件中,但它没有效果。这是错误的语法,更重要的是,首先尝试这个是一个坏主意吗?感谢。
答案 0 :(得分:17)
你在gavinb的评论中得到了几乎正确的答案,但这场比赛有点广泛。然而,关于忽视面部的关键概念是由RogerPage提供的,再次在评论中(每个人都更喜欢评论和答案?)。
让我们看看这九个文件:
dir.with.dots/file.with.dots
dir.with.dots/filewithoutdots
dir.with.dots/.filestartwithdot
dirwithoutdots/file.with.dots
dirwithoutdots/filewithoutdots
dirwithoutdots/.filestartwithdot
.startwithdot/file.with.dots
.startwithdot/filewithoutdots
.startwithdot/.filestartwithdot
如果在hgignore的默认正则表达式模式下,您执行:
\..*
你忽略了这9个文件中的8个:
$ hg stat -i
I .hgignore
I .startwithdot/.filestartwithdot
I .startwithdot/file.with.dots
I .startwithdot/filewithoutdots
I dir.with.dots/.filestartwithdot
I dir.with.dots/file.with.dots
I dir.with.dots/filewithoutdots
I dirwithoutdots/.filestartwithdot
I dirwithoutdots/file.with.dots
比你想要的更广泛。它忽略了任何一个点任何地方的东西。
要忽略所有文件和指南(不是你说的,但你想要的东西),以点开头,你使用这个正则表达式模式:
(^|/)\.
表示字面点之前的东西必须是行的开头(^
)或斜杠。
$ hg stat -i
I .hgignore
I .startwithdot/.filestartwithdot
I .startwithdot/file.with.dots
I .startwithdot/filewithoutdots
I dir.with.dots/.filestartwithdot
I dirwithoutdots/.filestartwithdot
仅捕获以点开头的文件或目录。
然而,出现的另一个关键概念是.hgignore在添加文件后没有效果。它会阻止通过外卡添加,但您始终可以使用显式hg add
覆盖.hgignore。并且一旦添加了文件,就不再咨询hgignore。
这实际上非常方便,因为你可以广泛地忽略(例如:.*\.jar
),然后手动添加你想要的异常,而不必使用你的hgignore文件。但是,在这种情况下,这意味着您需要hg rm
意外添加的文件,而tonfa显示了如何执行此操作(只要文件名中没有空格)。
最后,听起来你想要的.hgignore文件是:
(^|/)\._
您需要删除已添加的内容:
find . -type f -name "._*" -print0 |xargs -0 hg rm
答案 1 :(得分:0)
我在.container { position: relative; }
@media (max-width: 767px){
.img-responsive.mytumb { width: 20%}
}
:
.hgignore
其中包含:句点前面没有正斜杠以外的其他内容。
Ry4an的解决方案也很好,我之前也使用过那个。不确定哪个更有效率。