如何在回购中在回购中创建独特分支
问题描述:
我在回购中有几个回购。
在repo3我想创建几个分支。当我回购回购时,即在回购2中,并且执行git branch
时,它向我显示存在于回购2和回购3中的所有分支。但是我想要的是能够创建独特的分支,并且这些分支不应该出现在repo2中。如何在回购中在回购中创建独特分支
下图显示了我多么想:
repo1/ repo2/ repo3
| |
| |
| |_ _ _branchX, branchY, branchZ, branchK
|
|
branchA, branchB, branchC
答
这是我如何做最后:我在每个回购
git init
。然后,我创建了与该回购相关的新分支。当我回购回购股票并做了git branch
时,它只在当前回购股票中显示分行。
是的,但它也注册了一个gitlink(一special entry in the index)的嵌套式回购...无需注册嵌套回购远程URL。
因此,当repo2
将进行新的提交并推送它们时,repo1
将注册新的repo2 SHA1(gitlink),但不知道SHA1来自哪里(远程repo url)。
克隆再次repo1
将导致空repo2
(没有repo3
)
的正确方法初始化repo1
是由具有repo2
和repo3
单独初始化,即:
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 branch
在repo1
,2
或3
中完成将只显示当前回购的分支。
你在这里有多少实际的'.git'文件? –
我只在repo1中有.git文件。 – Deke
研究使用Git子模块。这将如下工作:在'repo2'里面,会有一个代表子模块'repo3'的分支。在'repo3'里面,你会看到它的所有分支。 –