Git ブランチの管理
Git では、 ブランチは、たとえば機能の作業が必要な場合や、リリースのためにコードベースの特定の状態を固定する必要がある場合などに、メインの開発ラインから分岐できるようにする強力なメカニズムです。
GoLand では、ブランチに関するすべての操作は VCS ウィジェットで行われます。 これを呼び出すには、メインウィンドウのヘッダーで、現在チェックアウトされているブランチの名前が付いたウィジェットをクリックします。

Branches ペインがある Git ツールウィンドウで、ブランチの管理や複数ブランチへのバッチ操作も可能です。
新規ブランチの作成
現在のブランチから新しいブランチを作成する
VCS ウィジェットで 新規ブランチ を選択するか、 Git ツールウィンドウの ブランチ ペインで現在のブランチを右クリックして 「ブランチ名」からの新しいブランチ を選択します。
表示されたダイアログでブランチ名を指定し、そのブランチに切り替える場合は ブランチをチェックアウトする オプションが選択されていることを確認してください。
新しいブランチ名を入力し始めると、GoLand は既存のローカルブランチの名前に基づいて関連する接頭辞を提案します。
新しいブランチは現在のブランチ HEAD から開始されます。
選択したブランチから新しいブランチを作成する
VCS ウィジェットまたは Git ツールウィンドウの ブランチ ペインで、新しいブランチを開始するローカルまたはリモートブランチを選択し、 選択からの新しいブランチ を選択します。
表示されたダイアログでブランチ名を指定し、そのブランチに切り替える場合は ブランチをチェックアウトする オプションが選択されていることを確認してください。
選択したコミットから新しいブランチを作成する
ログビューで、新しいブランチの開始点として機能するコミットを選択し、コンテキストメニューから 新規ブランチ を選択します。

表示されたダイアログでブランチ名を指定し、そのブランチに切り替える場合は ブランチをチェックアウトする オプションが選択されていることを確認してください。
ブランチの名前を変更する
VCS ウィジェットまたは Git ツールウィンドウの ブランチ ペインで、名前を変更するブランチを選択し、コンテキストメニューから 名前変更 を選択します。
開いたダイアログで、ブランチ名を必要な名前に変更します。
この操作はローカルのブランチの名前のみを変更することに注意してください。 ローカルのブランチとリモートで追跡されているブランチの両方に同じ新しい名前を付けたい場合は、新しいリモート(ブランチ)を作成し、代わりに追跡を開始する必要があります。
変更されていない古い名前を持つ現在のリモートブランチの追跡を停止するには、同じ ブランチの名前変更 ダイアログで 上流ブランチの設定を解除 オプションを選択します。
次回変更をプッシュすると、新しいリモートブランチが自動的に作成され、追跡されます。
変更をプッシュした後、古い名前の古いリモートブランチを 削除できます。
ブランチをお気に入りとしてマーク
ブランチが多数ある場合は、お気に入りのブランチだけを表示したい場合があります。 メインのブランチはデフォルトでお気に入りとしてマークされています。 お気に入りのブランチは、VCS ウィジェットの上部と Git ツールウィンドウの ブランチ ペインに常に表示されます。
ブランチをお気に入りとしてマークするには、VCS ウィジェットでブランチの名前にカーソルを合わせ、左側に表示される星の枠をクリックします。

または、お気に入りにしたいブランチを選択し、 Space(スペース) を押します。
Git ツールウィンドウの ブランチ ペインでブランチを選択して、ツールバーの
をクリックすることもできます。
グループブランチ
VCS ウィジェットでは、GoLand はブランチとタグを 4 つのノードに保持します:
最近 のブランチノードには、最近チェックアウトされたブランチが最大 5 つ表示されます。
ローカル ブランチノードには、すべてのローカルブランチがリストされます。
リモート ブランチノードには、最新の フェッチ後に使用可能なすべてのリモートブランチが表示されます。
タグ ノードには、チェックアウト、作業ツリーとの比較、マージ、プッシュ、削除できるすべての利用可能なタグがリストされます。
また、GoLand は接頭辞ごとに自動的にブランチをグループ化し、展開可能なリストに保存します。

ブランチをグループ化するには、ブランチ名の接頭辞をスラッシュ
/
で区切る必要があります。 例: jd/2023.1。
ブランチを接頭辞でグループ化するのを停止するか、 最近 または タグ ノードを非表示にするには、VCS ウィジェットの右上隅にある 設定 をクリックし、 接頭辞でグループ化、 最近のブランチを表示、 タグを表示する オプションの選択を解除します。

ブランチをチェックする (git-checkout)
他の人が作成したブランチで作業したい場合は、そのブランチをチェックアウトしてローカルコピーを作成する必要があります。
リモートブランチの完全なリストを確認するには、VCS ウィジェットで をクリックしてください。

ブランチを新しいローカルブランチとしてチェックアウトする
VCS ウィジェットまたは ブランチ ペインのある Git ツールウィンドウで、ローカルでチェックアウトしたいブランチを リモートブランチ から選択します。プロジェクトに複数のルートがあり、 同期ブランチコントロールが有効化されている場合は 共通リモートブランチ を、無効化されている場合は リポジトリ | リモートブランチ を使用します。
アクションのリストから チェックアウト を選択します。
新しいローカルブランチが作成され、チェックアウトされ、origin リモートブランチをトラックするように設定されます。
チェックアウトしたいリモートブランチと同じ名前のローカルブランチがすでにある場合があります。 状況に応じて、チェックアウトプロセスを完了する方法は次のとおりです。
コミットが失われることがなく、ローカルブランチがすでにリモートを追跡している場合、GoLand はローカルブランチをリモートブランチに自動リセットしてからチェックアウトします。
ローカルブランチにリセットで失われる可能性のあるコミットが含まれている場合、GoLand は次の選択肢を提案します:
ローカルコミットのドロップ: GoLand はローカルコミットを破棄し、ローカルブランチをリセットし、追跡を変更します。
リモートへのリベース: GoLand はローカルブランチをリモートブランチにリベースし、ローカルコミットを保持し、ローカルブランチをリセットし、追跡を変更します。
ブランチを切り替える
マルチタスク時は、関連のない変更をコミットするためにブランチ間を移動する必要がよくあります。
VCS ウィジェットまたは Git ツールウィンドウの ブランチ ペインで、 ローカルブランチ で切り替えたいブランチを選択し、使用可能な操作のリストから チェックアウト を選択します。
複数のリポジトリを使用するプロジェクトの場合、ブランチはリポジトリごとに自動的にグループ化されます。 必要なブランチをチェックアウトするには、VCS ウィジェットでまずリポジトリを選択してください。
次に何が起こるかは、まだコミットしていないローカル変更とチェックアウトしようとしているブランチの間で競合するものがあるかどうかによって異なります:
作業ツリーがクリーン(コミットしていない変更がない)場合、またはローカルの変更が指定されたブランチと競合しない場合、このブランチがチェックアウトされます(GoLand ウィンドウの右下隅に通知が表示されます)。
ローカル変更がチェックアウトで上書きされる場合、GoLand は選択したブランチのチェックアウトを妨げているファイルのリストを表示し、 強制チェックアウトと スマートチェックアウトのどちらかを選んでくださいと提案します。
強制チェックアウト をクリックすると、コミットされていないローカルの変更が上書きされ、失われます。
スマートチェックアウト をクリックすると、GoLand が未コミットの変更を シェルブし、選択したブランチをチェックアウト後に変更をアンシェルブします。 アンシェルブ操作中に競合が発生した場合は、変更をマージするように求められます。 詳細については、「競合の解決 」を参照してください。
ブランチを比較
ブランチを現在のブランチと比較する
ブランチが現在のブランチからどう分岐したか確認したい場合は、比較できます。
VCS ウィジェットまたは Git ツールウィンドウの ブランチ ペインから、現在のブランチと比較するブランチを選択し、 現在のブランチと比較 を選択します。
新しいタブが Git ツールウィンドウに追加され、選択したブランチに存在し、現在のブランチには存在しないすべてのコミットが一覧表示されます。
ブランチを入れ替え リンクをクリックして、他のブランチと比較するベースと見なされるブランチを変更できます。
2 つのブランチで異なるすべてのファイルの一覧を見るには、 Ctrl+A を押してください。 変更されたファイルペイン に差分を含むすべてのファイルが表示されます。
ブランチと作業ツリーを比較する
ブランチを現在のブランチと比較する以外に、現在のブランチのローカル状態と比較することができます。 これは、コミットされていない変更がローカルにある場合に役立ちます。
VCS ウィジェットまたは Git ツールウィンドウの ブランチ ペインから、ローカル作業ツリーと比較するブランチを選択し、 作業ツリーとの diff を表示 を選択します。
開いた 変更 ツールウィンドウには、現在チェックアウトされているブランチと比較して、選択したブランチで異なるすべてのファイルのリストが表示されます。
選択したブランチに存在し、現在のブランチには存在しないファイルは、灰色でマークされます。
現在のブランチに存在するが、選択したブランチにないファイルは、緑色でマークされます。
選択したブランチと現在のブランチの違いを含むファイルは、青色でマークされています。
ブランチを入れ替え リンクをクリックして、他のブランチと比較するベースと見なされるブランチを変更できます。
特定のファイル内の違いを確認するには、ファイルを選択してツールバーの
をクリックするか、 Ctrl+D を押します。
ファイルの内容全体を現在のブランチに適用するには、
をクリックします。 詳細については、 個別のファイルを適用する を参照してください。
一方のブランチから他方のブランチに含まれていないすべてのコミットを一覧表示する
2 点範囲表記(英語)を使用すると、選択したブランチから、他のブランチに含まれていないすべてのコミットを一覧表示できます。
たとえば、誰かが機能ブランチに取り組んでいて、時々メインのブランチをこの機能ブランチにマージする場合に役立ちます。 このフィルターを使用すると、機能ブランチのコミットのみをリストし、メインのブランチのコミットはリストしません。
Git ツールウィンドウ Alt+9 を開きます。
コミットペイン で、 に移動します。

比較するブランチを次のように指定します:
branch1..branch2は、branch1に含まれていないbranch2のすべてのコミットを一覧表示します。Ctrl+Enter を押す。
この例では、リストにはブランチ
feature1に含まれ、ブランチmainに含まれないコミットが含まれています。
このビデオを見て、ブランチへの変更比較方法をよりよく理解してください:
ブランチを削除
フィーチャーブランチから 変更をメイン開発ラインへ統合した後、不要になったブランチを削除できます。
今後の作業に使用するブランチを確認してください。
VCS ウィジェットまたは Git ツールウィンドウの ブランチ ペインで、削除するブランチを右クリックして 削除 を選択します。
ブランチ削除後、削除したブランチを復元できる通知が右下隅に表示されます:

ブランチに、上流のブランチまたは現在のブランチにまだマージされていないコミットが含まれている場合でも、すぐに削除されます(git branch --D または git branch --delete --force コマンドと同等)が、通知には、マージされていないコミットを表示できるリンクも含まれます。
削除したブランチがリモートブランチを追跡していた場合、この通知にリモートブランチを削除するリンクも表示されます。
同期ブランチ制御を構成する
マルチルートリポジトリの場合、すべてのブランチ操作(チェックアウト・マージ・削除など)を単一リポジトリのように全ルートへ一括適用するようGoLand を設定できます。
Ctrl+Alt+S を押して設定を開き、 を選択します。
すべてのルートに対してブランチ操作を実行する オプションを選択します(このオプションは、プロジェクトに複数のルートがある場合にのみ使用できることに注意してください)。
いずれかのリポジトリで操作が失敗した場合、GoLand は成功したリポジトリでこの操作をロールバックすることを提案し、ブランチの分岐を防ぎます。