我正在使用 git 来管理扩展的 CodeIgniter 框架。它是当前 CI 版本的克隆,带有额外的帮助程序、库等。
我有很多网站都使用这个框架,如果我在一个网站中添加新的帮助方法或修复错误,我希望能够轻松更新所有其他网站,而不会覆盖它们的任何自定义文件。
我希望实现以下工作流程
- 创建一个新的站点目录
git init
来初始化一个空白的本地 git repo - 将其与远程框架 repo 链接
git remote add origin git@github.com:username/framework_repo
- 拉取远程框架的新副本
git pull origin master
- 对站点文件进行更改并将它们提交回远程仓库
git push origin master
- 将这些更改下拉到其他站点
- 重复步骤 4 和 5
没关系,但是:
- 像 config.php 和 database.php 这样的文件不应该被提交回远程仓库,因为它们对于每个站点都是唯一的。
- 但是,我希望它们存在于远程存储库中,因此在第一次拉取请求时,默认文件将下载到我的本地目录。
- 此外,如果我从远程仓库再次拉取以更新框架,我不希望这些文件被覆盖
实现这一目标的最佳方法是什么?一些 .gitignore 巫毒?我已经使用 .gitignore 来忽略文件,但在这种情况下,它略有不同,因为我只想在第一个请求时提取文件。
我希望这是有道理的。