2015-08-16 97 views
1

我在Github上有一個回購,其中我打算將第二個Github回購(也是我的)作爲子樹。不幸的是,我的經驗不足意味着失敗了,所以我從1月份以來所做的所有工作都進入了主要回購的歷史。將歷史記錄從git repo移動到子樹

如何將此歷史記錄複製到第二個回購庫中,然後更改主項目以將其用作子樹?

編輯:評論之一(現在刪除)問爲什麼我不只是使用單個回購。主要的回購是私人的,但second repo是公開的 - 我試圖分享我可以。

回答

1

我的一個朋友指出我要Moving files from one git repository to another, preserving history。過濾器分支指令不適用於我,可能是因爲我的回購沒有分支機構?無論如何,我做的是:

git clone <git repository A url> 
cd <git repository A directory> 
git remote rm origin 
git filter-branch --subdirectory-filter <directory 1> -- 

這給了我一個回購,只有在子目錄的變化。然後,我融入我的第二個回購這樣的:

git clone <git repository B url> 
cd <git repository B directory> 
git remote add repo-A-branch <git repository A directory> 
git pull repo-A-branch master 
git remote rm repo-A-branch 

然後我用濾波器分支從主回購刪除子目錄:

git filter-branch --tree-filter 'rm -rf <bad subdirectory>' --prune-empty HEAD 

最後我也跟着The power of Git subtree更新後的第二次回購添加到第一作爲子樹。

相關問題