リポジトリAは、Gerritを介して管理されるgithubリポジトリを検討してください。 私はリポジトリAを複製し、リポジトリAのマスターブランチから新しいブランチを作成しました。私はこの新しいブランチを新しいgitlabリポジトリBにプッシュしました。私はリポジトリBの管理者で、他の開発者と共有しました。開発者はこのブランチをプッシュできませんが、私はそれらのプルリクエストをマージすることができます。 リポジトリBのマスターブランチでいくつかのプルリクエストをマージしました。したがって、リポジトリBはリポジトリAの初期コミットとプルリクエストの新しいコミットを持ちます:Bはコミット(b a)の上にコミットします。gitを使用して共有フォークされたリポジトリを更新する
次に、リポジトリBを新しいリポジトリAのコミットで更新したいと考えています。これらのコミットを+と呼びます。
私は2つのオプションを参照してください。
- 私はBにAをマージした場合、結果は次のとおりです。B +を。
- A +でBをリベースすると、結果はb a + aです。
オプション1:開発コミットが外部コミットと混在しています。デバッグが難しく、違いを強調するのが難しい。
オプション2:リモートBの変更を強制する必要があります。間違っていないと、結果は次のようになります。 1.開発者がBをプルし、Bのローカルマスターにコミットした場合、彼らのローカルな変更を失うでしょう。 2.ブランチBを強制的に更新した後、ローカルブランチをリベースする際に、開発者が大きな問題に直面することがあります。
問題を回避するためにどのように進める必要がありますか?