我有许多小项目,每个项目都在自己的存储库中。现在我需要从所有小项目中获得一个Gradle多项目构建。我创建了一个新的Git存储库,添加了所需的Gradle文件和目录结构,并在合并时打了一个墙。我尝试过其他线程的建议,比如子项目和子树,但我还需要更多:
每个项目都有两个主要分支 - master
和develop
。每个都有许多其他功能分支,每个功能分支都有自己唯一的名称(所有项目中没有两个名称相同)。
我知道如何添加子项目,合并master
分支并保留提交历史记录。我不知道如何保留分支数据。换句话说,我想:
不仅合并master
而且develop
合并所有项目并保留其历史记录。
保留所有小功能分支。
不是每个分支都手动完成。
答案 0 :(得分:0)
基本上,当你合并master
个分支时,当你有一个回购时,你可以
git checkout master
git merge myRemote/master
如何在每个repo / branch的循环中执行它?
例如:
#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