首先让我说.gitignore
功能不是我要问的。我有一些特定的目录,必须在跨平台构建之前进行。这些是图书馆的东西,对我来说每天都不会改变。 I learned这样做的方法是
git update-index --assume-unchanged
确实很好,除了它不理解通配符或解释目录名以包含其下的所有内容。 (好,半精;见下文)
如果我可以将它放在包含不会改变的库文件的树的顶部,一个名字,这将是最方便的。但是,这不起作用。
这也不是真正的功能。它可以防止Unstaged Changes中的垃圾邮件,但它也不会阻止git不时地将所有内容放回它想要它的方式。
有没有办法做到这一点,或者有更好的方法来完成我想要的东西?
答案 0 :(得分:0)
我不确定完全明白你想要什么,但我想你可能想看看gitattributes
。
在.gitattributes
中,您可以定义与过滤器关联的路径,然后在.git/config
中可以配置clean和smudge命令:
这样,您可以为一组文件指定特殊行为。
我使用它在我的dotfiles中有一个集中的.gitconfig,并根据我的电脑使用clean / smudge更改电子邮件和一些参数。
我认为你可以用同样的方式欺骗git而不是修改整个文件。