2017-09-28 122 views
0

我有兩個版本庫repoA和repoB。 repoA包含repoB和更多的一些文件和文件夾。結構如下git如何在兩個版本庫之間共享代碼

repoA 
--fileA 
--fileB 
--folderA 
--folderB 

repoB 
--fileB 
--folderB 

這兩個存儲庫fileB和folderB通用。

我該如何做到這一點,如果fileB和/或folderB修改任何回購,那麼兩者都將被更新。

如果可能更好,如果不是,我怎樣才能將repoB合併到repoA中,以便所有提交repoB的代碼都存在,並且不會對repoB中不存在的其他文件進行更改。大多數時候repoB將被midified共同文件和文件夾repoA將被修改這些文件和文件夾,這是不存在的repoB提前

感謝

回答

0

將以下腳本保存爲「混帳,子文件夾」 :

git filter-branch --prune-empty --index-filter \ 
    "git ls-files -s | sed 's-\t-&$1/-' | 
    GIT_INDEX_FILE=\$GIT_INDEX_FILE.new \ 
    git update-index --index-info && 
    mv \$GIT_INDEX_FILE.new \$GIT_INDEX_FILE || true" --tag-name-filter cat -- --all 

注意:該腳本是不是我的,我發現它前一段時間網路上的,但沒辦法把它找回來提及它,並給予信貸它的作者......

用它將repoA和repoB移動到子文件夾中,例如假設你有分別克隆repoA和repoB到cloneA和cloneB:

cd cloneA 
git-subfolder projectA 
cd ../cloneB 
git-subfolder projectB 

然後將它們合併:

cd ../cloneA 
git pull ../cloneB 

然後,您可以創建第三子文件夾,例如「common」,並把fileB和folderB放在那裏。 「子項目」projectA和projectB都必須引用commonB子文件夾中的fileB和folderB。您也可以在projectA和projectB中創建符號鏈接到fileB和folderB。

相關問題