我需要忽略git中的文件!我不认为忽视实际上是正确的词;我希望文件在git中,但我不希望能够对它们进行更改。对某些人来说,这似乎是一件奇怪的事情,但是有很多很多实例需要这个功能。我现在需要它的一个例子是当使用带有CMS的git时;如果没有不断变化的文件,CMS将无法运行,但我不希望在初始提交后提交这些文件。 (这对SVN和Tortoise很容易)。
的工作流程:
这是我尝试过的:
.gitignore
- 文件永远不会输入git。如果文件已经存在
缓存.gitignore文件没有做任何事情。/.git/info/exclude
- 与.gitignore相同的问题,但仅限于
当地的回购。答案 0 :(得分:92)
以下是similar question的答案。
git update-index应该做你想做的事情
这将告诉git你想要开始忽略对文件的更改
git update-index --assume-unchanged path/to/file
当你想再次开始追踪时
git update-index --no-assume-unchanged path/to/file
答案 1 :(得分:2)
另一种解决方案是使用pre-commit
钩子。有关详细信息,请参阅git help hooks
。
这很难设置:你必须编写一个shell脚本来准确表达你想要允许或禁止的内容,这可能意味着你需要对git有一个相当好的把握。
< / LI>它更永久和灵活:像git update-index
这样的技巧你可能会意外忘记运行它等等。但是一旦你设置了一个钩子,你就再也不用担心它了。
与建议的其他技巧一样,挂钩不会自动在存储库之间传播,但您可以将它们作为常规文件进行检查,并让每个人将它们链接到.git/hooks
。