【问题标题】:Use a .gitmodules from another project [duplicate]使用来自另一个项目的 .gitmodules [重复]
【发布时间】:2017-07-30 06:08:03
【问题描述】:

所以我有一个项目“NewProject”,它需要与另一个项目“OldProject”相同的子模块。

由于我不想在 NewProject 中手动执行以下操作
git submodule add git@gitlab.me:my-submodule.git

我希望有办法重用 OldProject 中的 .gitmodules 文件

这是我目前尝试的:

  • cp OldProject/.gitmodules NewProject/.gitmodules -> 好的(哇)
  • git submodule init -> 没什么
  • git submodule update -> 没什么
  • git submodule update --init -> 没什么
  • git submodule sync -> 没什么
  • git submodule update --init --recursive -> 没有

我见过无数人试图更改其子模块的 url(或名称)的问题,但我认为这并不相似,新的因素是 NewProject git 存储库是 vanilla (没有.git/modules)。

那么你认为有办法做我想做的事吗?
如果是,我该如何实现?

【问题讨论】:

    标签: git git-submodules


    【解决方案1】:

    tl;博士;

    不可能 -> 解决方法via script

    详情

    您的问题是缺少git submodule add 电话。这就是将子模块配置添加到您的.git/config 文件,在.git/modules 中为您的子模块创建一个文件夹,将一个子模块条目添加到.gitmodules 并在您的存储库中创建一个将签出子模块的文件夹。如果之前没有添加子模块,我找不到初始化子模块的方法。即使复制文件夹、config 条目和.gitmodule 文件,任何init 或update 调用都会失败。

    回答您的问题:我认为没有办法跳过submodule add 调用并重用您的.gitmodules 文件。

    编辑:顺便说一下,即使是新初始化的 git 存储库也有一个 .git/config 文件。

    EDIT2:避免调用git submodule add的具体原因是什么?

    【讨论】:

    • 因为有+50个子模块,我不想手工做:'(
    • 你对.git/config的看法是对的,我会更新问题
    • 哎哟。是的,这是一个很好的理由。
    • 但是,您可以编写一些疯狂的 shell 脚本来解析其他项目的 .gimodules 文件并为每个项目调用 git submodule add...
    猜你喜欢
    • 2018-03-21
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    相关资源
    最近更新 更多