即使使用-f添加目录,也会忽略目录中的某些文件

时间:2012-08-03 01:44:22

标签: git gitignore git-add

我只是按照Eli Barzilay here建议的方式将我的dotfiles放在存储库中:

  

所以我终于找到了一个充分利用两者的解决方案:把回购   在子目录中,而不是符号链接,为其添加配置选项   “core.worktree”成为您的主目录。现在,当你在家里   目录你不是在一个git仓库(所以第一个问题已经消失),而你   不需要像第二种情况那样处理脆弱的符号链接。你还在   有一个轻微的麻烦,排除你不想要版本化的路径(例如,   “.git / info / exclude”技巧中的“*”,但这不是新的。

我的.git / info / exclude看起来像这样:

*
.*.swp
*~
\#*#
.DS_Store

第一行的*成功忽略了所有文件,因此我使用git add -f显式添加内容。但是,这有副作用,我想要忽略的文件漏掉。

有没有办法告诉git 真的忽略某些文件,即使我使用add -f

1 个答案:

答案 0 :(得分:0)

现在没有简单的方法可以做到这一点,因为将*放在.git/info/exclude中你实际上是“盲目”git,你真正想要忽略哪些文件。这是使用git进行dotfile管理的独立工作树方法的一大缺点,这也是我个人拒绝这种方法的原因之一。相反,我写了一个pluginmr,它通过GNU Stow自动化符号链接场管理。

但是,如果您仍然希望坚持使用分离的工作树方法,那么您一定要看vcsh而不是重新发明轮子。 I am currently working on making git's ignore mechanism more scriptable,并且可能将来vcsh等工具可以使用此工作,以至少部分解决此问题。 (我知道vcsh的作者,刚刚在IRC上向他提出这个想法。)

最后,我建议与vcs-home人一起讨论,以便更好地了解所有选项。