2014-05-04 85 views
0

我有許多小型項目,每個小型項目都位於其自己的存儲庫中。現在我需要從所有的小項目中構建一個Gradle多項目。我創建了一個新的Git倉庫,添加了所需的Gradle文件和目錄結構,並通過合併打開了牆。我已經嘗試了其他線程,如子項目和子樹的建議,但我需要更多一點:將許多小項目合併爲一個多項目,同時保留Git中的歷史記錄和分支

每個項目有兩個主要分支 - masterdevelop。每個都有許多其他功能分支,每個分支都有自己的唯一名稱(所有項目中沒有兩個名稱相同)。

我知道如何添加一個子項目,合併master分支並保留提交的歷史記錄。我不知道如何保留分支數據。換句話說,我想:

  1. 合併不僅masterdevelop分支在所有項目中,並保持它的歷史。

  2. 保留所有小功能分支。

  3. 不是每個分支手動完成。

回答

0

基本上,當你合併master分支,當你有一個單一的回購,你做

git checkout master 
git merge myRemote/master 

大約在每個回購/支在一個循環做什麼呢?

例如:

#Retrieving master branches 
git checkout master 
for remote in $(git remote); do 
    git merge $remote/master 
done 

#Retrieving develop branches 
git checkout develop 
for remote in $(git remote); do 
    git merge $remote/develop 
done 

#Retrieving feature branches, using the fact that no two names are the same accross all projects 
for remote in $(git remote); do 
    for branch in $(git branch -a | grep $remote | sed 's#remotes/$remote/##'); do 
    git checkout $remote/$branch 
    git branch $branch 
    done 
done 
相關問題