将文件夹移到另一个git存储库并保留历史记录

时间:2018-09-24 15:36:29

标签: git github gitlab bitbucket

我想将文件夹从git移到另一个git存储库。

例如:

这是我当前在Git中的文件夹结构。

src/Project/RegistrationBundle
src/Project/PictureGenerationBundle
src/Project/CloudDriveBundle
readme.md

我想将其移动到具有以下文件夹结构的新存储库,但我想保留以前存储库中的git历史记录:

src/RegistrationBundle
readme.md

我尝试使用git filter-branch运行它

git filter-branch --subdirectory-filter src/Project/RegistrationBundle/

但是,我找不到自定义文件夹结构的解决方案。

请告诉我是否可以实现。

非常感谢。

2 个答案:

答案 0 :(得分:0)

您可以在当前本地存储库上更改您的存储库体系结构(删除“ Project”文件夹),提交更改,然后更改远程git存储库。

使用git remote set-url origin <the new git url>更改存储库的网址。

由于.git文件夹中的本地历史记录完全没有更改,因此历史记录将是相同的。

答案 1 :(得分:0)

git filter-branch --subdirectory-filter src/Project/RegistrationBundle/ -- --all

运行此命令时,您所拥有的只是RegistrationBundle中的文件,然后在新的存储库中添加一个带有RegistrationBundle路径的遥控器,然后执行git pull