在工作中,我们有一个GIT存储库,让我们称它为OriginalRepo,包含许多文件夹。决定向另一个团队提供一个新的存储库(让我们调用NewRepo),其中有一些来自OriginalRepo的文件夹。两个存储库中的文件夹结构相同,唯一的区别是NewRepo有一个文件夹子集。另一个团队已经在一些分支机构中进行了200多次提交。
我们想要的是将来自NewRepo的所有提交的所有分支带入OriginalRepo到它们发散的提交。 我想在NewRepo中创建的所有分支都在OriginalRepo中调用
" NewRepo _" + NewRepoBranchName
所有提交我想拥有相同的作者和日期。是否可以创建一个脚本呢?
答案 0 :(得分:0)
我想最简单的方法是做(在OriginalRepo中):
git remote add NewRepo <url-to-new-repo>
git fetch NewRepo
现在所有远程引用都将存储在.git/refs/remotes/NewRepo
中。
换句话说,你可以这样做:
git checkout NewRepo/NewRepoBranchName
我认为这应该足够了。
如果要在NewRepo中创建与每个远程分支对应的本地分支,可以像这样使用for循环:
#/bin/bash
for REMOTE_BRANCH in $(git branch -r | grep -o "[^ ]*" | grep "^NewRepo") #Loop through all remote branches from NewRepo
do
BRANCH=$(echo $REMOTE_BRANCH | grep -o -P "(?<=^NewRepo/).*") #Remove the NewRepo/ prefix
LOCAL_BRANCH=NewRepo_$BRANCH #Add NewRep_ prefix
git branch $LOCAL_BRANCH $REMOTE_BRANCH #Create local branch corresponding to the remote branch
done