是否有更简单的方法从单一存储库发布到不同的存储库?

GWo*_*ing 5 git git-checkout git-tag git-subtree git-branch

我有一个带有纱线工作区(和lerna)的monorepo

-package
--one
--two
-site
Run Code Online (Sandbox Code Playgroud)

一个脚本将它们中的每一个(站点)推送到它们的 github 存储库

我用类似的东西来做这个

-package
--one
--two
-site
Run Code Online (Sandbox Code Playgroud)

它(到目前为止)有效,尽管速度很慢

问题是我这样做是否正确,或者还有其他更好的解决方案

Ant*_*ean 1

初始子树分割似乎没问题,但您可能需要仔细检查示例 3。

假设你有一个包含许多文件和子目录的源目录,并且你想将 lib 目录解压到自己的 git 项目中。这是一个简短的方法:

首先,在您想要的任何位置创建新存储库:

$ <go to the new location>    
$ git init --bare
Run Code Online (Sandbox Code Playgroud)

回到原来的目录:

$ git subtree split --prefix=lib --annotate="(split)" -b split
Run Code Online (Sandbox Code Playgroud)

然后将新分支推送到新的空存储库上:

$ git push <new-repo> split:master
Run Code Online (Sandbox Code Playgroud)

https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt

无论如何,接下来,如果这个 monorepo 是“写入”存储库,您应该能够简单地将子树推送更新到远程。

git subtree push --prefix package/one remote-one master
Run Code Online (Sandbox Code Playgroud)

关于推送花费的时间越来越长(存储库收集的提交越多)存在一些争议,因此这里有一些关于在拆分中使用重新加入选项的信息。

如何减少推送子树的不断增加的时间?