10

分岐を使用して、out プラットフォームのカスタム インスタンスを作成および展開しています。これらのインスタンスは通常、「マスター」ブランチからのブランチとして開始され、ある程度カスタマイズされ、テストおよび本番環境にデプロイされ、最後にアーカイブされます。

新しい機能またはバグ修正がマスターに追加された場合、それらをプロジェクト インスタンス (ブランチ) にフェッチ/マージできるようにしたいと考えていますが、ブランチからマスターへの変更をマージし直すことはほとんどありません。これは最近誤って発生し、深刻な頭痛の種となっています。リポジトリを更新するための git pull により、すべてがマスター ブランチにマージされ、メイン リポジトリにプッシュされました。

マスターへのマージを禁止する簡単な方法はありますか? または、少なくとも --force フラグが必要ですか?

4

3 に答える 3

1

Git は、複数のリモート リポジトリを操作できることを非常にうれしく思います。

カスタム インスタンスごとに 1 つのリモート リポジトリを使用することをお勧めします。Git は元の場所に関係なく、任意の 2 つのブランチをマージできるため、ワークフローは変わりません。

「マスターリモート」からのバグ修正で「カスタムインスタンス」を更新するには、次のように入力します

git checkout <custom-branch>
git fetch main
git merge main/master

mainあなたが参照しているリモートリポジトリはどこですかmaster(ブランチとリモートの混乱を避けるために名前を変更しました)

ローカル ブランチの場合は、リモート トラッキング ブランチとして指定しないmainでください。代わりに、インスタンス固有のリモートを指定してください。つまり、カスタム インスタンスごとに 1 つのリモート リポジトリです。

カスタム インスタンスに変更をプッシュするには、次を使用します。

git push

まれに、変更を上流の「マスター」ブランチにプッシュする必要がある場合に使用します

git push main
于 2011-11-21T21:04:08.023 に答える
0

master へのマージを避けたい場合は、pre-merge フックを使用して禁止することができます。

于 2011-11-21T11:55:25.253 に答える