2017-05-29 17 views
0

私の質問の文脈では、私はあるプロジェクトのupstream\masterブランチからorigin\masterブランチを持っています。gitリポジトリをフォークして同期する戦略

私のoriginプロジェクトは、新しい機能を備えた完全に独立したプロジェクトであり、upstream\masterへのプルリクエストを作成することは決してありません。しかし、私はupstream\masterから更新を取得し、それに同期しています。

このシナリオでは、origin\masterは私のプロジェクトのmasterブランチであるため、最も安定したブランチであるはずです。私はそれを保護し、プッシュ操作を制限したいと考えています。 (restricted branches

しかし、私は右のそれを理解すれば、私はupstream\masterと同期したい場合は、私は私のプロジェクトのローカルmasterブランチへの変更を取得していて、競合を解決した後、私はこれは、origin\masterにプッシュする必要があります私は実際にそれを行うことはできません。また、私は

より一般的に言えばは、直感的にそれは右の私には感じていない

upstream\masterから直接 origin\masterにマージする。..による同じ制限に origin\masterへのローカル masterからプル要求を作成することはできません。

このようなシナリオでは、より良い戦略が存在するかどうかは知っていますか?

答えて

1

ローカルmasterのブランチはorigin/masterの作業コピーであるため、ローカルmasterorigin/masterに同期させる必要があります。 origin/masterupstream/masterを直接同期させるのは意味がありません。

あなたorigin/masterブランチは、リモート直接、あなたがその後、masterにそれをマージするプルリクエストを作成し、別のブランチを作成し、リモートにそれをプッシュすることができますし押していない保護されます。以下のように詳細:githubのWebページで

#After you update local master to sync with upstream/master 
git checkout -b temp 
git push -u origin temp 

- >プルリクエストを作成 - >mastertempブランチをマージ - >ついにorigin/master意志がupstream/master支店で更新しています。 origin/masterでローカルmasterブランチを同期する

git checkout master 
git pull origin master 
関連する問題