git子模块和分支

git子模块和分支,git,version-control,git-submodules,Git,Version Control,Git Submodules,因此,我的回购结构如下所示: --project - master --project - beta --project - dev1.0 --project - dev1.1 --project - dev1.2 目前我使用的是git分支,我使用的是dev1.2,这很好,我想从1.2开始添加一个项目参考,然后将其“合并”到master(或者以其他方式,哪种更好)问题是,我认为我对这一点理解不够 我可以在dev1.2分支上执行以下操作吗: git add subm

因此,我的回购结构如下所示:

   --project - master
   --project - beta
   --project - dev1.0
   --project - dev1.1
   --project - dev1.2
目前我使用的是
git分支
,我使用的是
dev1.2
,这很好,我想从1.2开始添加一个项目参考,然后将其“合并”到master(或者以其他方式,哪种更好)问题是,我认为我对这一点理解不够

我可以在dev1.2分支上执行以下操作吗:

git add submodule--link--name
然后执行
git commit-a-m“some message”
git checkout dev1.1
然后
git cherry pick#commit,在那里我添加了参考项目
,最后是
git submodule udpate


这实际上是说:在dev1.2上添加一个新引用,提交它-添加引用-切换到1.1,在没有引用的地方,选择提交来添加引用,然后更新子模块,使其现在在1.2和1.1上都有引用

管理子模块可能会变得非常混乱、快速。我建议你改用。它是由Android开源项目创建的,以满足Android的需求,但它是一种非常通用的机制,可以被任何项目使用。与git子模块相比,它的功能更加广泛,并且与集成非常好(不过这是可选的)

git repo允许您同时使用“按提交sha跟踪”模型(相当于git子模块)或“按分支名称跟踪”模型(git子模块不可能),或二者的任意组合


repo只有一个缺点——它不明确支持Windows(但在Linux、Mac和大多数POSIX系统上工作得很好)。它不能在Windows上运行的最初原因是它广泛使用符号链接,但Windows XP不支持它们。由于Windows 7+支持符号链接,应该可以修复
git repo
以在Windows上工作,但不幸的是,还没有人愿意这么做。

这很好,我所有的代码都是在linux上完成的,感谢上帝-Windows的死。因此,这允许我将另一个存储库“引入”到我的代码库中,并将其用作“参考”我可以将该其他项目与此项目一起发布吗,还是将其全部“删除”,因此,如果我尝试发布,它将像“您丢失了这些文件…”(它是使用子项目的超级项目)