虽然这个问题似乎是重复的或许多以前的问题(以及数十篇涉及类似主题的博客文章),但我需要让您知道我正在寻找一种允许我编写脚本的方法。
- 所有分支和标签都应该合并
- 分支和标签应该加前缀以避免重叠
- 文件不会重叠,因为我们导入到新的子文件夹。
- 增量合并过程:以后能够合并新的存储库,因为我计划缓慢迁移到 monorepo 设置,一次一个存储库。
我正在尝试构建的脚本应该像这样工作:
./merge-repo monorepo/subdir/foo git@github.com:example/foo.git
这将假定目标存储库 (monorepo) 已在monorepo/
文件夹中克隆,并且它没有任何本地更改。
例如,如果 foo.git 将有两个分支master
和develop
一个标签名称v1.0
,在执行合并后,我希望在 monorepo 存储库中看到分支foo-master
和foo-develop
标签。foo-v1.0
我阅读了数十篇文章(或脚本),但到目前为止我还没有找到一篇解释如何获得它的文章。
澄清
- 如果我在 foo.git 存储库的根目录中有一个 README.txt,我希望在
monorepo/subdir/foo/README.txt
. 如果这些将成为大仓库的子目录(以前不存在的子目录),那是唯一允许我合并存储库而不会发生冲突的方法。
更新
虽然我还没有准备好说问题已经解决,但我最终编写了这个 bash 脚本,它应该在修补源存储库后执行合并。看看它https://github.com/ssbarnea/monorepo/blob/master/git-monorepo-add.sh
PS。一旦我有一个可靠的解决方案,我会尽快给出正确的答案,并通过许多存储库进行测试。