2016-11-14 95 views
1

我在回购中有几个回购。
在repo3我想创建几个分支。当我回购回购时,即在回购2中,并且执行git branch时,它向我显示存在于回购2和回购3中的所有分支。但是我想要的是能够创建独特的分支,并且这些分支不应该出现在repo2中。如何在回购中在回购中创建独特分支

下图显示了我多么想:

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

你在这里有多少实际的'.git'文件? –

+0

我只在repo1中有.git文件。 – Deke

+0

研究使用Git子模块。这将如下工作:在'repo2'里面,会有一个代表子模块'repo3'的分支。在'repo3'里面,你会看到它的所有分支。 –

回答

0

这是我如何做最后:我在每个回购git init。然后,我创建了与该回购相关的新分支。当我回购回购股票并做了git branch时,它只在当前回购股票中显示分行。

是的,但它也注册了一个gitlink(一special entry in the index)的嵌套式回购...无需注册嵌套回购远程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 

通过该设置,一git branchrepo1,23中完成将只显示当前回购的分支。

相关问题