github 版本库分离子目录为只读子版本库
Github 的官方文档有说明如何使用 git 分离一个已存在版本库的子目录到新的版本库。但这玩意就是一次性的。分离之后,父库上的子目录修改没办法自动同步到子库上。
幸好 github 上也有人提供了同步工具 git-subsplit。
使用起来很简单。
首先,你得至少有两个版本库。比如在 github 分别是 https://github.com/yourname/foo 和 https://github.com/yourname/foo-bar 其中,foo-bar 对应 foo/bar 目录。foo-bar 最好是空仓库。
然后检出 foo 到本地,创建 foo/bar 目录,增加点内容。
可以在 foo 本地目录,也可以另找一个地方,执行:
1 | git subsplit init https://github.com/yourname/foo |
设置父版本库。这个只需要一次执行。
等到父版本库有新的 push/pull 后,回到该目录下,执行:
1 | git subsplit update |
更新(pull)父版本库的变更。
最后,执行:
1 | git subsplit publish bar:https://github.com/yourname/foo-bar --heads=master |
同步变更到子版本库。子目录可以多层,也可以同步多个。
发表评论