Git:将本地Git子模块(包括子模块文件)推送到远程裸存储库
我有两个本地项目,我用gitGit:将本地Git子模块(包括子模块文件)推送到远程裸存储库,git,git-submodules,git-remote,git-bare,Git,Git Submodules,Git Remote,Git Bare,我有两个本地项目,我用gitgit管理,一个项目依赖于另一个项目,如下所示: project A/ ├── project B/ │ ├── file B₁ │ ├── file B₂ │ ├── … 对我来说,将项目B作为项目a的git子模块是有意义的 现在,我为projecta建立了一个远程裸存储库,用于备份和共享。当然,我希望远程存储库包含所有projectb,包括它的文件(fileb)₁,文件B₂,…)。但是,gitpush和gitpush--recurse su
git
管理,一个项目依赖于另一个项目,如下所示:
project A/
├── project B/
│ ├── file B₁
│ ├── file B₂
│ ├── …
对我来说,将项目B
作为项目a
的git子模块是有意义的
现在,我为projecta
建立了一个远程裸存储库,用于备份和共享。当然,我希望远程存储库包含所有projectb
,包括它的文件(fileb)₁代码>,文件B₂代码>,…)。但是,gitpush
和gitpush--recurse submodules=on-demand
不能实现这一点。每当我通过git ls tree-r HEAD
列出远程存储库中的文件时,只会列出projecta
本身的文件。这对我来说是有道理的
但是,是否有办法将整个子模块项目B
以某种方式推送到我的远程基本存储库中,最好是以一种干净的方式?子模块必须有一个单独的存储库。创建一个新的裸回购并将子模块推送到它。子模块必须有一个单独的存储库。创建一个新的裸回购协议并将您的子模块推送到它。如果B实际上是一个子模块,您应该有一个.gitmodule引用它。
在该.gitmodule
文件中,您将看到推送B的远程repo URL,以防在B中执行任何新的提交
但是B是一个子模块,意味着a中没有B文件,只有对B SHA1的引用
如果需要,可以取消子模块B(使用或)以将所有B文件保留在A中。如果B实际上是子模块,则应该有一个.gitmodule引用它。
在该.gitmodule
文件中,您将看到推送B的远程repo URL,以防在B中执行任何新的提交
但是B是一个子模块,意味着a中没有B文件,只有对B SHA1的引用
如果需要,可以取消子模块B(使用或),以便将所有B文件保留在A中