[英]Git bringing all commits from one repo to another
在工作中,我们有一个GIT存储库,我们称它为带有许多文件夹的OriginalRepo。 决定向其他团队提供一个新的存储库(我们称为NewRepo),其中包含来自OriginalRepo的一些文件夹。 两个存储库中的文件夹结构相同,唯一的区别是NewRepo具有文件夹的子集。 另一个团队已经通过几个分支进行了200多次提交。
我们想要的是将所有具有所有提交的分支从NewRepo引入到OriginalRepo中,使其脱离分支。 我希望在NewRepo中创建的所有分支都可以在OriginalRepo中调用
“ NewRepo_” + NewRepoBranchName
我希望所有提交都具有相同的作者和日期。 是否可以创建一个脚本来做到这一点?
我想最简单的方法是(在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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.