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 をシミュレーションできます。リベースは、一部のコミットを放棄して新しく作成することで機能します。
Rebasing can cause problem when working in public repositories. It can cause extra merge work for your collaborators; You may want to prevent these problems before they start. You can do this with the Branch permissions dialog.
プッシュ機能を制限する
ブランチにプッシュできるユーザーを制限するルールを設定できます。たとえば、特定のユーザー グループにのみ main ブランチへのプッシュを許可できます。ワイルドカードを使用してブランチ名を定義できます。ワイルドカードを使用すると、一連のブランチ全体で適用されるルールを設定できます。
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.
この内容はお役に立ちましたか?