【问题标题】:Copy Git project to new repo with submodules in tact using sourcetree使用 sourcetree 将 Git 项目复制到带有子模块的新仓库
【发布时间】:2020-03-19 03:04:17
【问题描述】:

我正在努力实现的目标 我想复制一个 wordpress “入门主题”,我将其与来自各种 repos 的子模块库放在一起。 (例如 normalize-css 或 scrollmagic)。它在我当前的项目文件夹中运行良好,但是当我尝试将主题复制到新文件夹,重命名父主题文件夹,然后将其添加到新仓库时,我无法让它显示在 sourcetree 中。它只是想像常规文件一样将子模块文件添加到主仓库中。

我尝试过的: 首先,我将启动主题文件夹复制到一个新位置并给它一个新名称。然后我更新了其中的文件以反映以下区域中的新文件夹名称:“模块 .git 文件”驻留在子模块文件夹中,在“项目根 .gitmodules 文件”中。我还注意到在项目根 .git 文件夹中,也出现了一个模块文件夹。我不知道该怎么办。我将它复制到新的 .git 文件夹位置,并使用一对夫妇的适当文件夹名称更改更新了配置文件作为测试,但似乎没有做任何事情。附带说明一下,我也尝试了子存储库,但也遇到了麻烦。

这是我必须手动添加到每个新项目的东西,还是有办法将它们转移到新的仓库?

原始文件夹结构 |下面的新文件夹结构比较(如果有帮助)

第一个是我开始的分支,New 是我复制过来的分支。

【问题讨论】:

    标签: git git-submodules atlassian-sourcetree git-subrepo


    【解决方案1】:

    当我尝试将主题复制到新文件夹,重命名父主题文件夹,然后将其添加到新仓库时,我无法让它显示在 sourcetree 中

    它只是想像普通文件一样将子模块文件添加到主仓库中。

    然后你需要确保你只复制文件,而不是任何 .git 子文件夹。
    如果您有 .git 子文件夹,SourceTree 将仅显示该子模块内容的根目录,作为嵌套的 Git 存储库。

    【讨论】:

    • 我删除了子模块文件夹中的 .git 文件,它现在仍然显示出来。我还尝试运行 git submodule init 和 git submodule 以查看是否会强制它在之后查看 .gitmodules 文件。这也没有帮助。
    • 你添加、提交和推送了吗?
    • 是的,假设我只需要提交,但我也确实推动了这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 2012-10-05
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    相关资源
    最近更新 更多