所以,这是我的用例:
我正在尝试为团队中的非开发人员开发一个内部 Mac 应用程序,以编辑我的一些游戏参数。理想情况下,应用程序将能够重新创建必要的配置文件并将它们直接提交/推送到我的 gitlab 实例,这将触发 CI 构建。
我知道我可以以编程方式将我的 repo 克隆到他们的机器上,然后以编程方式对其进行编辑并提交更改,但我试图避免让每个只编辑几个文件的用户克隆 2+GB 的代码。
有什么建议如何直接提交到远程仓库?在这种情况下,用户和我的服务器都可以被认为是“可信的”。谢谢!
所以,这是我的用例:
我正在尝试为团队中的非开发人员开发一个内部 Mac 应用程序,以编辑我的一些游戏参数。理想情况下,应用程序将能够重新创建必要的配置文件并将它们直接提交/推送到我的 gitlab 实例,这将触发 CI 构建。
我知道我可以以编程方式将我的 repo 克隆到他们的机器上,然后以编程方式对其进行编辑并提交更改,但我试图避免让每个只编辑几个文件的用户克隆 2+GB 的代码。
有什么建议如何直接提交到远程仓库?在这种情况下,用户和我的服务器都可以被认为是“可信的”。谢谢!
看起来那些配置文件可以在他们自己的(非常小的)git存储库中,并作为子模块保存在主存储库中。
然而,一旦一个子模块被推回,一个钩子应该确保父 repo 更新它的子模块引用(git submodule update),并添加+提交刚刚推送的子模块的新 SHA1。
否则,父 repo 不会意识到其子模块已更改。
这也意味着父 repo 应该声明该子模块遵循master
分支的最新 SHA1 :
git submodule add -b master /url/to/submodule
对于像这样受限制的东西,单一回购解决方案也可以工作:
创建一个仅配置分支:
git checkout --orphan configs
rm all but configs
git add -A
git commit -mconfigs
git checkout main
git push server configs
在配置编辑器存储库中:
git init configrepo
git remote add server u://r/l
git fetch server configs
git checkout -t server/configs
# work work, then
git commit -am "new configs"
git push
作为构建的一部分,
git pull -Xtheirs configs