[英]Git submodule remote server
我的本地计算机上的以下2个文件夹包含共享库/帮助器:
上面的库应该是我后端的子模块...
...以及我的前端:
到目前为止,所有内容都已配置并且可以正常工作!
此外,我还有用于前端和后端的远程服务器。
现在,我想获得以下信息:如果我在一个共享库中提交了更改,我想通过一个git push(后端,本地计算机上的前端和后端,服务器上的前端)将更改推入所有4个存储库中。
如果这是不可能的:如果我在库中提交更改,那么我想一次将更改至少推送到我的2个本地目录中。 如果我将本地目录之一的更改推送到远程服务器,则子模块的更改也应自动推送到远程目录。
共享库中的更改只能在共享文件夹中进行,而不能在后端或前端中进行!
谢谢你的帮助!
现在,我想获得以下信息:如果我在一个共享库中提交了更改,我想通过一个git push(后端,本地计算机上的前端和后端,服务器上的前端)将更改推入所有4个存储库中。
简单的git push是不可能的。 您不能使用工作副本将更改“推送”到存储库-您只能推送到裸存储库。 对于带有工作副本的存储库,您只能从其他地方拉出。
子模块的使用有些棘手,我已经尝试过做类似您之前谈论的事情。 我完全放弃了这个想法,而是希望使git子模块中的内容更加通用,并能够作为独立的东西安装在系统上。
这样看-如果库中的代码与主存储库有足够的可分离性,那么将其视为自己的软件包并分别进行开发/部署是合乎逻辑的。 如果库中的代码严格依赖于您的主存储库,那么无论如何它都应该只是一个存储库。
并不是说子模块没有用-我仍然在使用它们。 如果要使用它们,则必须遵循它们的规则:
看起来很麻烦,但是子模块与其他任何回购协议实际上并没有什么不同。 它们独立存在,您需要以这种方式对待它们。 另外,从父级的角度来看,子模块文件夹只是其中包含sha1哈希的文件。 git submodule
命令只是方便脚本,用于在父级引用的存储库上进行操作。
UPDATE
虽然您无法在单个命令中使用纯git来做到这一点,但是您可以编写一个bash脚本来为您完成大部分工作,并且可以将其与git hooks组合以使其自动化。
它将无法自动处理冲突解决方案,如果出现问题,您可能会试图找出4个单独存储库的状态。
我不会推荐这样的解决方案。 它过于复杂且可能脆弱,要使它变得强大灵活且通用,您将不得不涉及的可能性之多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.