我有以下结构:
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在分支主机上,这是我希望移植的子目录的分支。
如果您需要补充信息,请告诉我。
答案 0 :(得分:2)
您链接到的帖子中的path/to/your/submodule
是克隆存储库中的子模块目录的路径(执行此命令时应该是新的目录),而不是原来的。根据你所写的内容来判断它应该只是my_lib
$ git filter-branch --subdirectory-filter 'my_lib' --prune-empty -- --all