【问题标题】:Splitting out a sub directory in a git repo into it's own repo将 git repo 中的子目录拆分为它自己的 repo
【发布时间】:2014-01-18 14:17:50
【问题描述】:

我有以下结构:

 my_main_project/
    my_lib/
       file1
       dir2/
           file2
    my_other_files

现在,my_lib 已经到了它应该是它自己的库的地步,应该是my_main_project 中的一个子模块

IE:

my_main_project/  (is repo)
    <my_lib>  (is sub module)
    my_other_files/

my_lib/ (is repo)
    file1
    dir2/
    file2

出于显而易见的原因,我希望保留 my_lib 的 git 历史记录。

无论如何,我尝试了以下方法:Convert a git folder to a submodule retrospectively?

但是,它出现了这个错误

$ git filter-branch --subdirectory-filter '../my_main_project/my_lib' --prune-empty -- --all
> fatal '../my_main_project/my_lib' is outside repository

什么,我做错了什么,需要做些什么才能使其正常工作。我应该指出 my_main_project 在 master 分支上,这是我希望移植的 subdir 的分支。

如果您需要补充信息,请告诉我。

【问题讨论】:

  • 为什么子目录的路径是../my_main_project/my_lib,你是从主项目外运行命令吗?

标签: git github refactoring git-submodules git-subtree


【解决方案1】:

您链接到的帖子中的path/to/your/submodule 是您的克隆存储库中子模块目录的路径(执行此命令时您应该在其中的新目录)而不是原始目录.从你写的来看应该只是my_lib

$ git filter-branch --subdirectory-filter 'my_lib' --prune-empty -- --all

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    相关资源
    最近更新 更多