7

私のローカルgitリポジトリは1つのサーバーからプルする必要があります。次に、特定のブランチを、別のサーバー上の別のブランチ名を持つレビューリポジトリにプッシュする必要があります。

次のようなものです。Server1のPullOnlyRepoからすべてをプルします(おそらくそのオリジンと呼びますか?)Server2のブランチ名JistChangesでBranchホットフィックスをReivewRepoにプッシュします。

現在、gitconfig-lは次のことを示しています。

remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=<URL for Server1>
remote.origin.pushurl=no_push (this shouldn't matter since it is a pull only repo)
branch.production.remote=origin
branch.production.merge=refs/heads/production
remote.review.url=<URL for Server2>
remote.review.fetch=+refs/heads/*:refs/remotes/review/*

git pullは私が望むことを実行します(Server1の正しい場所から変更をフェッチし、それらを作業ツリーにマージします)。

ただし、gitpushはそうではありません。私がしたいことを達成するために私はしなければなりません

git push review hotfix:JistChanges

余分なものを入れずにgitpullにこれを行わせる方法はありますか?

ローカルブランチが別のブランチ名でリモートにプッシュするように設定されたいくつかの質問がすでにあります。ただし、アップストリームとプルの発生元も変更されます。

4

2 に答える 2

4

次のアップストリームブランチを設定できますhotfix

git config push.default upstream
git config push.default review 
git branch --set-upstream hotfix review/JistChanges

既存のgitブランチにリモートブランチを追跡させるにはどうすればよいですか?」を参照してください。デフォルトポリシーの「結果はgit push originpush 」を参照してください(まもなく「simple」になります)

git1.8.0以降:

git branch -u review/JistChanges hotfix

OP jistanidiot は、次の方法で同じ結果を達成したと報告しています。

git remote set-url --push origin
git config remote.origin.push refs/heads/hotfix:JistChanges
于 2012-10-19T07:04:34.543 に答える
3

OK VonCの答えは、私を正しい軌道に乗せました。これが私がしたことです:

git remote set-url --push origin <review repo URL>
git config remote.origin.push refs/heads/hotfix:JistChanges

これに関する唯一の問題は、すべてがレビューリポジトリにプッシュされることです。作業の90%がこのブランチで行われるため、今のところは問題ありません。他の10%は、他の同じオリジンリポジトリが正しいプッシュ構成でgitpushotherを実行できます。

于 2012-10-19T13:33:08.933 に答える