84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
通常的git ignore都是自己本地的文件不再追踪,并且push之后会删除远端的这个文件。
我的需求是,本地文件不再追踪,也不删除远端的文件,否则远端仓库的代码就坏了,想想看,db.config文件从仓库中被删除是多可怕的事实。
光阴似箭催人老,日月如移越少年。
首先本地不追踪和远端仓库不删除这两者不能同时获得,因为git在每次提交时都是以快照的形式,而不是说提交了几个文件,所以说如果本地不追踪了,那么提交时肯定会默认删掉这个文件。
git
解决方案:这种问题很常见,跟node_modules要不要提交远端仓库等相似,你提到了一句话---“远端仓库的代码就坏了”,我需要纠正一下,并不是说node_modules要不要提交远端仓库等相似,你提到了一句话---“远端仓库的代码就坏了”,我需要纠正一下,并不是说git上面远端仓库的代码拿下来都是可以直接run的,百分之九十都是要改一些东西,配一些环境才可以work的,就比如我刚刚说的node_modules问题,没人会上传这么大的文件,只会上传一个 package.json上面远端仓库的代码拿下来都是可以直接run的,百分之九十都是要改一些东西,配一些环境才可以work的,就比如我刚刚说的node_modules问题,没人会上传这么大的文件,只会上传一个 package.json文件,本地需要根据这个配置文件去配置本地信息。
node_modules
run
work
package.json
你这个db.config文件也是一样的,你远端仓库上可以存一个db.config.default或者db.config.sample这样的文件,这里记录的是db.config文件的所有默认配置,但是每个人本地开发环境需要将db.config.default或者db.config.sample复制一份,重命名为db.config,然后将配置改为自己需要的,很有可能每个开发人员的本地配置都不一样,这时候把db.config加入.gitignore,一般来说.default或者.sample文件不需要改动提交的,除非是真的是整个项目需要修改才要提交
db.config
db.config.default
db.config.sample
.gitignore
.default
.sample
觉得麻烦或者配置文件多的话,可以写个脚本,用一些sed的命令就可以达到一键修改所有配置的效果,我一般都是这么做的,脚本里面把开debug、调php.ini里面扫描php文件变化的间隔时间等工作做了
sed
你的需求可以做到,但是这不是问题。问题在于配置文件的管理。
我通常是这么做:不同环境不同的配置文件,config.xxx。不同的环境通过环境变量或者命令行参数或者软链接(到同一个名字,比如 config,这个文件不放到仓库里)来区分,加载相应的配置文件。
首先本地不追踪和远端仓库不删除这两者不能同时获得,因为
git
在每次提交时都是以快照的形式,而不是说提交了几个文件,所以说如果本地不追踪了,那么提交时肯定会默认删掉这个文件。解决方案:这种问题很常见,跟
node_modules
要不要提交远端仓库等相似,你提到了一句话---“远端仓库的代码就坏了”,我需要纠正一下,并不是说node_modules
要不要提交远端仓库等相似,你提到了一句话---“远端仓库的代码就坏了”,我需要纠正一下,并不是说git
上面远端仓库的代码拿下来都是可以直接run
的,百分之九十都是要改一些东西,配一些环境才可以work
的,就比如我刚刚说的node_modules
问题,没人会上传这么大的文件,只会上传一个package.json
上面远端仓库的代码拿下来都是可以直接run
的,百分之九十都是要改一些东西,配一些环境才可以work
的,就比如我刚刚说的node_modules
问题,没人会上传这么大的文件,只会上传一个package.json
文件,本地需要根据这个配置文件去配置本地信息。你这个
db.config
文件也是一样的,你远端仓库上可以存一个db.config.default
或者db.config.sample
这样的文件,这里记录的是db.config
文件的所有默认配置,但是每个人本地开发环境需要将db.config.default
或者db.config.sample
复制一份,重命名为db.config
,然后将配置改为自己需要的,很有可能每个开发人员的本地配置都不一样,这时候把db.config
加入.gitignore
,一般来说.default
或者.sample
文件不需要改动提交的,除非是真的是整个项目需要修改才要提交你的需求可以做到,但是这不是问题。问题在于配置文件的管理。
我通常是这么做:不同环境不同的配置文件,config.xxx。不同的环境通过环境变量或者命令行参数或者软链接(到同一个名字,比如 config,这个文件不放到仓库里)来区分,加载相应的配置文件。