想象一下,您有一个带有子目录“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

10-04 17:25