在我的开发团队中,我们有多个项目跨越几个git repos。这些项目实际上共享一些常见的配置元素。我们最近对我们的一个共享配置文件进行了本地更改,我们都不希望将其提交给生产环境。
/www/
|
|-- git repo 1 (containing shared config files)
|-- git repo 2 uses files from 1
|-- git repo 3 uses files from 1
|-- git repo n uses files from 1
在我们为每个仓库设置.gitignore
文件时,我遇到了~/.gitignore_global
由于.gitignore_global
位于~/
,每个用户,是吗?
我是否应该让每个开发人员实现他们自己的.gitignore_global文件,或者我可以将常规.gitignore应用于所有这些文件,以便可以全局提交吗?
答案 0 :(得分:4)
假设您在gitignore
man page中提到属性core.excludesfile
:
放置模式的文件取决于模式的使用方式:
- 应该通过克隆进行版本控制并分发到其他存储库的模式(即所有开发人员都希望忽略的文件)应该进入
.gitignore
文件。- 特定于特定存储库但不需要与其他相关存储库共享的模式(例如,存储在存储库中但特定于一个用户工作流的辅助文件)应该进入
$GIT_DIR/info/exclude
文件。- 用户希望git在所有情况下都忽略的模式(例如,由用户选择的编辑器生成的备份或临时文件)通常会进入由
core.excludesfile
指定的文件中。用户的~/.gitconfig
。
是的,这是每个用户。
话虽如此,对于具有可变内容的配置文件(取决于环境),我宁愿更喜欢存储库中的版本.gitattributes
文件,其中包含内容过滤器驱动程序。
请参阅forinstance“How to keep different content of one file in my local and github repository?”