首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用自己的fork替换git子模块

用自己的fork替换git子模块
EN

Stack Overflow用户
提问于 2012-07-25 02:36:30
回答 2查看 18K关注 0票数 43

我在我的git库中添加了一个子模块,如下所示:

代码语言:javascript
复制
$ git submodule add git://github.com/user/some-library some-library

我决定创建一个该库的分支来做一些调整。我如何交换子模块,使其指向我自己的github分支?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-25 02:42:40

子模块存储在.gitmodules

代码语言:javascript
复制
$ cat .gitmodules
[submodule "ext/google-maps"]
    path = ext/google-maps
    url = git://git.naquadah.org/google-maps.git

如果使用文本编辑器编辑url,则需要运行以下命令:

代码语言:javascript
复制
$ git submodule sync

这将更新包含此子模块列表副本的.git/config (您也可以手动编辑.git/config的相关[submodule]部分)

尽管submodule系统看起来有点不完整(例如参见the instructions to remove a submodule),但可能有一种方法可以只使用git命令来实现这一点

票数 57
EN

Stack Overflow用户

发布于 2017-11-23 05:34:32

我不知道这是真的有多久,但可以肯定的是,即使是在相当老的git1.8子模块中也有遥控器。所以,你可以这样做

代码语言:javascript
复制
cd some-library   # this is entering the submodule
git remote -v     # just to see what you have; I guess origin only
git remote add myrepo git-URL-of-the-fork
git checkout -b my_new_idea
git push -u myrepo my_new_idea

现在,子模块与您的fork一起工作,而不是原始的repo。你可以做普通的push, pull, rebase等。当你的拉取请求被合并时,你可以用普通的git remote remove myrepo移除遥控器。当然,关于使用子模块的所有其他注意事项都适用(例如,您必须将子模块的更改提交为超级模块中的新提交)。

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

https://stackoverflow.com/questions/11637175

复制
相关文章

相似问题

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