将目录从一个Git repo迁移到另一个具有所有历史记录的Git repo

将目录从一个Git repo迁移到另一个具有所有历史记录的Git repo,git,Git,我有一些文件存在于Repo 1的目录中。假设它是一个视频播放功能。与此功能相关的所有文件均未在此目录中创建。有时开发人员会意识到这一共性,并将所有文件移动到一个公共位置 现在我们有了一个核心库,我们希望所有这些文件都能存在其中,以便其他项目可以重用它们。我已成功地使用以下命令将文件放入另一个存储库,但在Repo 1中将文件移动到公共目录之前,它缺少文件的历史记录 我如何才能这样做,使文件的整个历史记录都包含在核心库中,而不管它在Repo 1中被git mv’d了多少次 cp -R repo-w

我有一些文件存在于Repo 1的目录中。假设它是一个视频播放功能。与此功能相关的所有文件均未在此目录中创建。有时开发人员会意识到这一共性,并将所有文件移动到一个公共位置

现在我们有了一个核心库,我们希望所有这些文件都能存在其中,以便其他项目可以重用它们。我已成功地使用以下命令将文件放入另一个存储库,但在Repo 1中将文件移动到公共目录之前,它缺少文件的历史记录

我如何才能这样做,使文件的整个历史记录都包含在核心库中,而不管它在Repo 1中被git mv’d了多少次

cp -R  repo-where-feature-exists/ video-filtered-repo
cd video-filtered-branch
git remote rm origin 
git filter-branch --subdirectory-filter src/main/resources/static/video-poc/js/video/ -- --all 
rm -rf src/
mkdir -p component-library/src/main/resources/components/video
git mv -k * component-library/src/main/resources/components/video/
git commit -m "Moving files from where they were in the original location into the core location"


Now go to core…
cd /software/dp/core
git remote add video-feature /software/dp/video-filtered-repo/
git pull video-feature integration

请参阅。

我想这里已经介绍了这一点:在我看来,您缺少的步骤是使用
git filter branch
将历史记录重写为您想要的确切目录结构,而不是通过
git mv
单独完成(它只是删除了文件并再次添加,打破了整洁的历史记录)