2015-06-02 133 views
0

在工作中,我們有一個GIT倉庫,我們把它稱爲OriginalRepo並帶有許多文件夾。有人決定向另一個團隊提供來自OriginalRepo的幾個文件夾的新存儲庫(讓我們稱之爲NewRepo)。文件夾結構在兩個存儲庫中都是相同的,唯一的區別是NewRepo有一個文件夾子集。另一個團隊已經與幾家分公司進行了200多次提交。Git將所有提交從一個倉庫帶到另一個倉庫

我們想要的是將所有提交的所有分支從NewRepo帶入OriginalRepo到它們分離的提交。 我想這是在NewRepo創建的所有分支機構在OriginalRepo

「NewRepo_」被稱爲+ NewRepoBranchName

我想有相同的作者&日期所有提交。是否可以創建一個腳本來做到這一點?

回答

0

我想這樣做是做(在OriginalRepo)最簡單的方法:

git remote add NewRepo <url-to-new-repo> 
git fetch NewRepo 

現在所有遠程裁判將被存儲在.git/refs/remotes/NewRepo。 換句話說,你可以這樣做:

git checkout NewRepo/NewRepoBranchName 

我認爲這應該是足夠的。


如果你想創建對應於每個NewRepo遠程分支地方分支機構,你可以使用一個循環是這樣的:

#/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 
+0

Alderath,對所提供的解決方案非常感謝。其實我想要所有提交的分支。 我發現櫻桃採摘非常好。 git cherry-pick sha1..shaN – user1325696

相關問題