想象一下,您有一个带有子目录“A/mySubDir”的存储库“A”,并且您想将“A/mySubDir”分离到一个新的存储库“B”中。
git init B
cd <repo A>
git subtree split --prefix==A/mySubDir --branch=split
git push 'B' split:master
假设 repo “A”上的HEAD现在在12fe上。我更新了“A/mySubDir”中的一些文件。
当“A/mySubDir”中的文件更改时,如何使“B”保持最新状态?
git subtree split --prefix==A/mySubDir --branch=split 12fe..
结束于一个错误,说:
分支“split”不是提交“XXXX”的固定对象
有人在上面粘胶吗?
问候,
格特
最佳答案
您已经完成了第一步(拆分A
存储库),但尚未将B
存储库放回A中,如“Using Git subtrees for repository separation”中所述:
以下是适合您的A/mySubDir - B
情况的摘录:
将存储库添加为主存储库的子树
git rm -r A/muSubdir
git commit -am "Remove split code."
git remote add B /url/to/B.git
git subtree add --prefix=A/mySubDir --squash shared master
pull 上游变化
git subtree pull --prefix=A/mySubDir --squash shared master
将更改推送到上游存储库
git subtree push --prefix=A/mySubDir --squash shared master