Git:忽略一个已被版本控制的文件

17

.gitignore文件可以让您忽略某些文件的版本控制。

我们有不同的情况:我们想要将一些需要在每台机器上更改的配置文件放入存储库中(例如用于数据库访问的信息)。

我们确实想要分发它们作为占位符,因此将它们包含到存储库中。 但是,稍后我们希望所有开发人员都忽略对它们的任何更改。

有没有办法做到这一点?

注意:

Git:忽略版本控制的文件问题实际上是相同的。 但是,包括被接受的答案在内,没有一个答案回答了这个问题。

编辑:

  • 有没有一种方法可以将 --assume-unchanged 应用于模式而不是单个文件?
  • 有没有一种方法将此命令传播到其他开发人员的存储库中?

1
可能是 防止本地更改被推送到 Git 的重复问题。 - Mauricio Scheffer
https://dev59.com/Em445IYBdhLWcg3wq8Pp,https://dev59.com/EnM_5IYBdhLWcg3wZSM6 - wnoise
可能是这些问题的重复:http://stackoverflow.com/search?q=[git]+%2Bassume-unchanged - Cascabel
关于重复的所有内容,我完全同意mathepic的观点:解决方案不是绕过版本控制,而是让您的程序具有在配置之间选择的能力。 - Cascabel
2个回答

47

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

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

这应该正是你想要的:运行 git ignore some-file 将使该文件被视为未更改,无论你对其进行何种操作,直到你运行 git unignore some-file


有没有办法忽略整个目录? - keiki
1
请参见https://dev59.com/EGct5IYBdhLWcg3wLqjw:`git ls-files -z path/to/directory | xargs -0 git ignore` - maff

3
我知道这有点绕,但我会为每个人都准备一个“ .defaults”文件,然后进行更改。这样可以帮助配置能量 - 如果某个人想要更改默认设置,则怎么办?
不要忽略“ .defaults”,而是忽略实际的东西。也许可以编写一个脚本,如果常规文件不存在,则将“ .defaults”文件复制到常规文件中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接