2
我有一些文件存在於Repo 1中的目錄中。假設它是一個視頻播放功能。與此功能相關的所有文件都不在此目錄中創建。有時開發人員會意識到這種共同性,並將所有文件移動到一個共同的位置。將目錄從一個Git庫遷移到另一個包含所有歷史庫的目錄
現在我們有一個核心庫,我們希望所有這些文件都可以存活,以便其他項目可以重複使用它們。我已成功使用以下命令將文件存入其他存儲庫,但在將文件移入Repo 1之前缺少文件的歷史記錄。
我該怎麼做才能讓這個文件的整個歷史記錄都包含在覈心庫中,而不管它在回購1中被混合了多少次?
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
我認爲這是覆蓋在這裏:http://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories/1425914#1425914 在我看來,像你失蹤的一步是使用'git filter-branch'將歷史重寫爲你想要的確切的目錄結構,而不是用'git mv'(它只是刪除文件並再次添加它們,打破了整潔的歷史)單獨完成。 – Eliot