如何在repos中创建唯一的分支



我有几个repos中的repos。
在repo3中,我想创建几个分支。当我移回一个repo,即在repo2中,并执行git branch时,它会显示repo2和repo3中存在的所有分支。但我想要的是能够为它们的repo2创建唯一的分支这些分支不应该出现在repo2中。

这个图表显示了我想要的:

   repo1/ repo2/ repo3 
            |      |
            |      |
            |      |_ _ _branchX, branchY, branchZ, branchK
            |
            |
          branchA, branchB, branchC

我最后是这样做的:我在每个repo中都做了git init。然后我创建了相应的分支。当我移回一个回购并执行git branch时,它只显示当前回购中存在的分支。

是的,但是它也为嵌套的repo注册了一个gitlink(索引中的一个特殊条目)…无需注册嵌套的repo远程url。
因此,当repo2将做出新的提交并推送它们时,repo1将注册新的repo2 SHA1 (gitlink),但不会知道SHA1来自何处(远程repo url)。
再次克隆repo1将导致空repo2(没有repo3)

初始化repo1的正确方法是分别初始化repo2repo3,即:

cd /path/to/repo2
git submodule add -- /url/repo3
git add .
git commit -m "Add repo3 as submodule"
git push
cd /path/to/repo1
git submodule add -- /url/repo2
git add .
git commit -m "Add repo2 as submodule"
git push

有了这个设置,在repo1, 23中完成的git branch只会显示当前repo的分支。

最新更新