首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
V2EX  ›  git

如何转换一个 repo 为另一个 repo 的 submodule?

  •  
  •   LudwigWS · 75 天前 · 1520 次点击
    这是一个创建于 75 天前的主题,其中的信息可能已经有所发展或是发生改变。
    repoA
    repoB
    

    repoA, repoB 都是 Git 仓库。

    想转换为一下结构

    repoA
      repoB
    
    mv repoB repoA
    git submodule add ./repoB/ repoB
    # 'repoB' already exists in the index
    git submodule add -- https://github.com/[repoB] repoB
    # 'repoB' already exists in the index
    

    求大神指点啊。

    7 回复  |  直到 2019-09-27 05:55:10 +08:00
        2
    compilerhero   75 天前
    你不应该把 repoB 移动到 repoA 中, 而是应该直接在 repoB 里需要 repoA 的地方添加 submodule. 一个 submodule 实际上是对另一个 repository 的引用.
        3
    LudwigWS   75 天前
    @compilerhero
    @yzlnew
    因为本地我已经有这两个仓库了。如果删了 repoB,再执行 `git submodule add` 我想是可以的,但是这会从远程进行 `clone`。

    我想是否有方法在本地就进行 repo 到 submodule 的结构转换。
        4
    compilerhero   75 天前
    @LudwigWS 可以的. 添加 submodule 时和克隆时引用源 repository 的方式是一样的. 如果你有一个本地的 repoB 副本, 只要使用指向它的路径就可以, 比如 `git submodule add D:\work\repoB\.git repoB` (我觉得这么做并不好). 你添加的 submodules 都会出现在 .gitmodules 文件里.
        5
    LudwigWS   75 天前
    @compilerhero 但是我不想指向本地的地址。😅。太难了,我还是删了重新克隆观察一下。
        6
    IMCA1024   75 天前
    subtree?
        7
    jtnwm   74 天前
    在 add 的时候添加 --reference 参数指向本地 repoB,会使用本地 repoB 中已有的对象。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1071 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 19:05 · PVG 03:05 · LAX 11:05 · JFK 14:05
    ♥ Do have faith in what you're doing.