2011-02-16 123 views
17

A .gitignore文件允许从控制它们的版本中忽略文件。git:忽略*版本控制的文件

我们有不同的情况:我们希望在存储库中放置一些配置文件,这些配置文件需要在每台计算机上进行更改(例如db访问信息)。

我们希望将它们作为占位符分发,所以我们将它们包含到存储库中。 但是,后来我们希望对所有开发人员的更改予以忽略。

有没有办法做到这一点?

注:

问题Git: Ignoring Version-Controlled Files实际上是一样的。然而,没有一个答案回答了这个问题,包括接受的答案。

编辑:

  • 有没有办法做到--assume-不变的模式,而不是一个单一的文件?
  • 有没有办法将这个命令传播给其他开发者的仓库?
+1

[防止本地变更被推入Git](http://stackoverflow.com/questions/2173726/prevent-local-changes-to-get-pushed-in-git) – 2011-02-16 01:01:40

+0

http:// stackoverflow.com/questions/4743770/git-collaboration-how-to-manage-configuration-files,http://stackoverflow.com/questions/1396617/git-committing-machine-specific-configuration-files – wnoise 2011-02-16 01:19:53

回答

3

我知道这种闪避的问题,但我会为每个“.defaults”文件,然后改变这一点。无论如何,这有助于配置能量 - 如果某个具有自定义配置的人想要更改默认值,该怎么办?

不要忽略.defaults,忽略实际的东西。如果它们不存在,也许会有一个脚本将.defaults复制到常规脚本。

46

我在.gitconfig文件中定义以下的别名:

[alias] 
    ignore = update-index --assume-unchanged 
    unignore = update-index --no-assume-unchanged 

这应该做的正是你想要的东西:运行git ignore some-file会当作不变的文件,不管你做什么变化,直到您运行git unignore some-file