Git の fast forward とブランチの管理

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

特定の状況において、チェックアウトしたブランチよりも進行しているブランチをマージすると、Git が fast-forward を行う場合があります。次のような、ブランチとそれらのマージのシナリオがあったとします。

緑色のブランチと青色の master ブランチの両方で、履歴に 45tP2 コミットがあります。ブランチには、マージ前に 1 つ (または複数) のコミットがありました。ブランチはマージの時点で、master よりも進んでいます。master にはコミットがなく、ブランチからの分岐はありません。 

マージの時点で、Git はこの状況を認識しています。そのため、master ブランチのポインタを fast-forward して、マージされたコメントに対応させます。マージ メッセージに、fast-forward についての通知が記載されます。

git merge greenbranch
Updating 45tP..56tk9
Fast forward
some.src |    1 −
 1 files changed, 0 insertions(+), 1 deletions(−)

マージ後、ユーザーは不要になったブランチを削除できます。master は同じ場所を示します。これは、ブランチがリモート Bitbucket Cloud リポジトリにプッシュされたことがない場合に最適です。

non-fast-forward マージとは、master ブランチに、ブランチ ポイント間の変更や、master へのマージが存在する場合のマージ方法です。この場合、ユーザーはマージではなくリベースによって fast-forward のシミュレーションを行うことができます。リベースは一部のコミットを放棄し、新しく作成することで機能します。

リベースを行うと、公開リポジトリでの作業で問題が発生する可能性があります。協同作業者に追加のマージ作業が発生する可能性があります。この問題は、事前に防ぐことができます。この操作は、「ブランチ権限」ダイアログで行います。  

プッシュ機能を制限する 

ブランチにプッシュできるユーザーを制限するルールを設定できます。たとえば、特定のユーザー グループにのみ master ブランチへのプッシュを許可することができます。ワイルドカードを使用してブランチ名を定義できます。ワイルドカードを使用すると、一連のブランチ間で適用されるルールをセットアップできます。  

たとえば、バグ修正には契約社員が、フィーチャー ブランチでの作業には開発チームが携わっているとします。課題名を使用して、バグ修正ブランチに名前を付けます。フィーチャー ブランチに feat- という接頭辞を付けます。この方法の詳細については、「ブランチ権限」を参照してください。

最終更新日 2017 年 7 月 13 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.