Git の fast forward とブランチの管理
特定の状況において、チェック アウトしたブランチよりも進行しているブランチをマージすると、Git が fast-forward を行う場合があります。次のような、ブランチとそれらのマージのシナリオがあったとします。
緑のブランチと青の main ブランチ両方の履歴に 45tP2 コミットがあります。ブランチにはマージ前に、1 つ (または複数) のコミットがありました。ブランチはマージの時点で、main ブランチよりも進んでいます。main ブランチにはコミットがなく、ブランチからの分岐はありません。
マージの時点で Git はこの状況を認識しています。そのため、main ブランチのポインタを fast-forward してマージされたコミットに対応させます。マージ メッセージに fast-forward についての通知が記載されます。
git merge greenbranch
Updating 45tP..56tk9
Fast forward
some.src | 1 −
1 files changed, 0 insertions(+), 1 deletions(−)
マージ後、ユーザーは不要になったブランチを削除できます。main ブランチは同じ場所を示します。これは、ブランチがリモート Bitbucket Cloud リポジトリにプッシュされたことがない場合に最適です。
non-fast-forward マージとは、ブランチ ポイントからメイン ブランチへの再マージまでの間にメイン ブランチが介入して変更を加えた場合のマージ方法です。この場合、ユーザーはマージではなくリベースによって fast-forward をシミュレーションできます。リベースは、一部のコミットを放棄して新しく作成することで機能します。
リベースを行うと、公開リポジトリでの作業で問題が発生する可能性があります。協同作業者に追加のマージ作業が発生する可能性があります。この問題は、事前に防ぐことができます。この操作は、「ブランチ権限」ダイアログで行います。
プッシュ機能を制限する
You can set rules that limit who can push to a branch. For example, you can allow only a certain group of users to push to the main branch. You can use wildcards to define branch names. Wildcards let you set up rules that apply across sets of branches.
For example, suppose you use contractors for bug fixes and developers for work on feature branches. You use the Bitbucket issue or Jira work item name to name your bug fix branches. You preface feature branches with a feat-
prefix. See Branch permissions for information on how to do this.
この内容はお役に立ちましたか?