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 ブランチへのプッシュを許可することができます。ワイルドカードを使用してブランチ名を定義できます。ワイルドカードを使用すると、一連のブランチ間で適用されるルールをセットアップできます。  

For example, suppose you use contractors for bug fixes and developers for work on feature branches. You use the issue 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.

最終更新日 2017 年 7 月 13 日

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

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