1

リモートリポジトリをローカルワークスペースに複製し、コンテンツを維持するために設定した新しいベアリポジトリにプッシュしようとしています。このリポジトリは、アップストリームリポジトリから時折更新する必要があり、新しいコンテンツはローカルリポジトリにプッシュする必要があります。良い。

次に例を示します。

git clone ssh://username@whatevergitrepo.com/project

project_localとして裸のレポを作成しました

mkdir project_local.git
git init --bare --share=2 project_local.git

このリモートリポジトリには複数のブランチがあるため、リモートリポジトリが私のワークスペースで複製されると、

branch1
branch2
.
.
branchN

リモートからすべてのブランチを取得し、ローカルの裸のリポジトリにプッシュするために行ったことは次のとおりです。

cd project
git branch -a >&/tmp/branchinfo
sed s,.*/,, /tmp/branchinfo >&/tmp/branchinfo1                              #this remove everything before the last '/' before the actual name of the branch
for i in `cat /tmp/branchinfo1`; do git checkout $i; done                   #checkout all the branches from remote site.
for i in `cat /tmp/branchinfo1`; do git push project_local.git $i; done     # Push all the remote branches to local repo I created with all contents.

この後、リモート リポジトリのコンテンツはローカルのベア リポジトリに保存されますが、個々のブランチのすべてのリモート変更を取得して、作成したローカル リポジトリの対応するブランチにマージするにはどうすればよいですか?

「git remote add」を使用してみましたが、それは参照を取得するだけで、実際にはコンテンツのマージは行いません。

私が得ることができる助けを前もって感謝します。

ありがとう

4

1 に答える 1

1

あなたがしているのはブランチを更新することだけのように聞こえます。実際には単なる参照更新である早送りマージを数えない限り、マージはありません。

あなたがする必要があるのは

git fetch original-repo
git branch -r | cut -f3- -d'/' | xargs -i{} git push new-repo original-repo/{}:{}

これは、新しいリポジトリのリモートエントリをすでに追加し、それを呼び出していることを前提としていますnew-repo

于 2012-11-01T23:40:21.937 に答える