当其他人克隆您的存储库时,其中包含使用合并策略创建的子树,更新子树所需的遥控器不存在。需要完成子树设置的哪些步骤(以https://help.github.com/articles/working-with-subtree-merge为例)才能在克隆之后使子树更新正常工作?
答案 0 :(得分:2)
要显式且独立于上游更新子树,您需要按照指示重新添加遥控器。在新的克隆回购中:
$ git remote add -f <subtree-repo> <subtree-repo-url>
$ git pull -s subtree <subtree-repo> <branch>
对于您提供的链接,它将沿着
行$ git clone /Users/tekkub/tmp/test my-test-clone
$ cd my-test-clone
$ git remote add -f cork git://github.com/TekNoLogic/Cork.git
$ git pull -s subtree cork master
您还可以使用git上最新版本支持的git subtree pull
。
从问题中不清楚依赖关系场景,但您也可以简单地拉出已克隆的repo以获取所有子树更新:
(repo1)
(repo2 [subtree: repo1]) -- clone --> (repo3)
repo1 $ git commit ...
repo2 $ git pull -s subtree ...
repo3 $ git pull
因此,当repo2
repo1
更新git pull
时,repo3
只需repo3
,您就可以获得所有提交内容。只有当您打算切断repo2
和pull
之间的依赖关系时,才应使用分界线上方的命令,否则如果您同时push
,pull -s subtree
上游和{{1}}很容易陷入经常令人不快的合并。