Git*_*ter 55 git configuration-files gitignore
我正在页面顶部写一个带有一些简单变量的简短脚本.我想和朋友一起工作,但我们不确定如何管理每次为我们中的一个人拉动后需要更改的变量,为git状态添加不必要的垃圾.我想过为我们每个人创建不同的命名分支,然后主人将只设置示例用户名,但是必须完成所有额外的工作合并似乎很愚蠢.我们可以将变量作为选项传递给脚本,但这不是所希望的,也不是将它分离到另一个单独的配置文件中.拥有像.gitignore这样的东西会很棒,但是只能忽略文件中的几行.
如何优雅地管理这个?这个问题通常如何管理?
Mar*_*air 62
你不能轻易忽略对文件特定行的更改,我担心,所以你可能会遇到一个单独的配置文件.下面我列举了两种处理这种情况的典型方法,以及一种更具异国情调的方法:
在这里,你还保留了一份文件,config.sample
在Git中作为一个例子,但应用程序实际上在文件中使用的值config
是在.gitignore
.除非config
存在,否则应用程序将产生错误.将新配置变量添加到个人config
文件时,必须记住更改示例文件中的值.在这种情况下,让应用程序检查所有必需的配置变量是否实际设置也是一个好主意,以防有人config
在更改样本后忘记更新文件.
您将文件保存config.defaults
在git中,该文件尽可能具有合理的默认配置值.您的应用程序首先config.defaults
从config
(然后)来源配置,.gitignore
以可能覆盖任何默认值.使用这种方法,通常不会因为config
不存在而使其成为错误,因此应用程序可以为那些没有费心去创建的人开箱即用config
.
第三种可能性,在这种情况下,我个人不建议使用单个配置文件,该文件在git中提交,但要使用git update-index --assume-unchanged <FILE>
,告诉git忽略对它的更改.(这篇有用的博客文章对此进行了进一步描述.)这意味着您对配置文件的本地更改将不会提交git commit -a
或显示在其中git status
.
Python/Django特定的解决方案是将一个共享settings.py
文件检入存储库,并settings_local.py
在最后导入一个本地settings.py
,它将使用特定于机器的值覆盖某些设置.
就我而言,我和团队中的所有其他开发人员一样,在一个单独的(小)文件中有“配置”变量。诸如我的数据库位置等内容都保存在那里。我们将此文件的名称放在我们的文件中,.gitignore
以便它不受版本控制,而是签入“sample_config”文件,以便新人可以制作副本并将其用于自己的目的。