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

同步变更到子版本库。子目录可以多层,也可以同步多个。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据