首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有其他repos的git子模块

带有其他repos的git子模块
EN

Stack Overflow用户
提问于 2017-08-12 09:43:34
回答 1查看 46关注 0票数 2

我想在回购A中使用一些对回购B的修改。B不属于我。A是我的。

我做了:

代码语言:javascript
复制
git submodule add -- https://github.com/debois/elm-mdl.git external/elm-mdl

Belm-mdl

我已经克隆了repo,因此在上面的命令中使用了--

然后我跑:

代码语言:javascript
复制
cd external/elm-mdl
git checkout v9
git checkout v9-my
.. make some changes and commit.
cd ../..

回到A的根中

代码语言:javascript
复制
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 )中更新或创建分支?

我无法更新遥控器:

代码语言:javascript
复制
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) 

我可以将这些提交保存在我原来的repo A中吗?

或者有什么可供选择的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-12 09:57:39

代码语言:javascript
复制
git config -f .gitmodules submodule.external/elm-mdl.branch v9-my

这意味着external/elm-mdl将尝试提取/更新v9-my分支:当您在该子模块中进行修改时,您需要在该分支中(并将您的新提交提交到该子模块的远程回购)。

代码语言:javascript
复制
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)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45648811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档