2017-08-12 109 views
2

我想在回購A中使用一些回購B的變化。 B不屬於我。 A是我的。git子模塊與其他回購

我所做的:

git submodule add -- https://github.com/debois/elm-mdl.git external/elm-mdl 

Belm-mdl

我已經克隆回購,因此--在上述命令。

我然後運行:

cd external/elm-mdl 
git checkout v9 
git checkout v9-my 
.. make some changes and commit. 
cd ../.. 

早在A的根

git config -f .gitmodules submodule.external/elm-mdl.branch v9-my 

└─ $ ▶ cat .gitmodules 
[submodule "external/elm-mdl"] 
    path = external/elm-mdl 
    url = https://github.com/debois/elm-mdl.git 
    branch = v9-my 

現在,我怎樣才能把這些提交保存爲我不能更新或創建遠程回購B分支即elm-mdl

我不能遠程更新:

ashish @ 7567 ~/work/be_autonomous (master) 
└─ $ ▶ git submodule update --remote --merge 
fatal: Needed a single revision 
Unable to find current origin/v9-my revision in submodule path 'external/elm-mdl' 
ashish @ 7567 ~/work/be_autonomous (master) 

我可以保存這些提交在我原來的回購A
或者有什麼選擇?

回答

1
git config -f .gitmodules submodule.external/elm-mdl.branch v9-my 

這意味着external/elm-mdl會盡量拉/更新v9-my分支:當您在子模塊做修改,你需要在該分支(和推新的提交到子模塊的遠程回購)

cd external/elm-mdl 
git checkout -b v9-my 
# work 
git add . 
git commit -m "new commit in v9-my branch" 
git push -u origin v9-my 

如果你不能推到當前的回購,叉即回購(使你自己)的推那裏。

然後,當你修改和提交,推輔助模塊,你仍然需要回到母公司回購,添加,提交和過於推有:它會保存子模塊的新的SHA1(其gitlink,一個special entry in the index of the parent repo

+0

呃..所以我不能沒有分叉工作.. :(..我希望如果有可能保存在原來的回購僅提交.. 感謝交代 –

+0

@AshishNegi沒錯:分叉允許你保存這些新的提交,併爲你的父回購引用它們。 – VonC

+0

是啊..我在等待別人提出一些有趣的東西... KS –

相關問題