2012-12-13 86 views
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 
+1

我認爲這是覆蓋在這裏:http://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories/1425914#1425914 在我看來,像你失蹤的一步是使用'git filter-branch'將歷史重寫爲你想要的確切的目錄結構,而不是用'git mv'(它只是刪除文件並再次添加它們,打破了整潔的歷史)單獨完成。 – Eliot

回答

相關問題