Skip to main content
チームでプロジェクトに取り組みたいけれど、互いの作業を邪魔したくないですよね。 ご安心を!互いの作業に干渉することなく並行してプロジェクトを進め、最後にすべてを組み合わせる方法があります。 それが「ブランチとマージ」です。

ブランチ

ブランチは、プロジェクトの別バージョンのようなものと考えることができます。 ブランチを作成すると、その時点でのプロジェクトのコピーを作成することになります。

新しいブランチの作成

デスクトップアプリで:
1

'+ New branch' をクリック

リポジトリビューの左上にあるブランチセレクタを開き、+ New branch をクリックします。The new branch button
2

ブランチ名を選ぶ

作業内容が分かるようなブランチ名を付けましょう。 また、分岐元のコミットにも注意してください — これが新しいブランチのベースになります。 作成後にそのブランチへ自動で切り替えるには、チェックボックス(デフォルトでオン)をオンのままにしておきます。The new branch modal window
3

Create をクリックする

CLI での操作については、ブランチの作成やその他のオプションについて branch コマンド を参照してください。

ブランチの切り替え

デスクトップアプリでは、左上のブランチセレクタに現在のブランチが表示されます。クリックすると、Branches タブでリポジトリ内のすべてのブランチが表示されます(デフォルトブランチには家のアイコンが付いています)。 別のブランチをクリックすると、切り替えずに読み取り専用モードで表示できます。 切り替えるには、切り替えたいブランチのメニューをクリックし、「Switch to branch」を選択します。 Switch branch ワークスペースにコミットされていない変更がある場合、破棄するか、後で使うためにシェルフに保存 するか、可能であれば新しいブランチに持っていくかを選択できます(下の マージ競合 を参照)。 CLI での操作については、ブランチ切り替えについて checkout コマンド を参照してください。 ブランチを切り替えると、コンピューター上のファイルが変更されます。Unreal Engine などの一部のゲームエンジンでは、変更を反映するためにエディタの再起動が必要な場合があります。

ブランチグラフ

デスクトップアプリでは、すべてのブランチとコミットの視覚的なグラフを見ることができます。
1

ブランチグラフを開く

左側のナビゲーションレールで Graph をクリックします。または、Ctrl+K (Mac では Cmd+K) を押して Branch Graph を選択します。The branch graph view
2

グラフを操作する

グラフは、すべてのブランチとコミットのインタラクティブな可視化を表示します。パンやズームでグラフ内を移動できます。Branch graph
3

作成者で絞り込む

グラフ右上の All authors をクリックし、1 人以上を選択します。選択したユーザーのコミットはハイライトされたまま、他のコミットは淡色表示になります。グラフは選択したユーザーの最新のコミットに移動します。そのコミットがまだ読み込まれていない場合は、グラフがリポジトリから読み込みます。Branch graph filtered by author
4

グラフからアクションを利用する

グラフ内の任意のコミットやブランチを右クリックすると、コンテキストメニューが開きます。ここから、他の場所でも利用できるのと同じアクション(ブランチの作成、コミットのチェリーピック、マージなど)にアクセスできます。Branch graph context menu
作成者フィルターは、Diversion で作成されたコミットを検索します。Git または Perforce からインポートされたコミットは、インポート時にその作成者が Diversion アカウントを持っていた場合にのみ一致します。
ブランチがたくさんある場合、これは互いの関係を把握するのに最適な方法です。

すべてのブランチのコミット

Commits ビューには、チェックアウトしているブランチのコミットが一覧表示されます。ブランチを切り替えずに他のブランチの作業を追うには、代わりにすべてのブランチを表示します。
1

Commits ビューを開く

左のナビゲーションレールで Commits をクリックします。
2

すべてのブランチに切り替える

検索ボックスの下で All branches を選択します。一覧には、リポジトリ内のすべてのコミットが新しい順に表示され、各コミットの下にブランチ名が表示されます。
3

自分のブランチに戻る

Current branch を選択すると、チェックアウトしているブランチだけが再び一覧表示されます。
この選択は現在のセッションの間保持されます。検索とコミットメニューはどちらのモードでも同じように機能します。 メッセージまたは ID で特定のコミットを探すには、Ctrl+K (Mac では Cmd+K) を押して入力します。クイックアクセス は、すべてのブランチのコミットを検索します。

覚えておくべき重要事項

  1. どのブランチで作業する場合も、メインブランチでの作業と同じです。変更、コミット、同期 — すべて同じです。
  2. ブランチはリポジトリ内の誰にでも見え、誰でも任意のブランチに切り替えることができます。
  3. ブランチにコミットされた変更は、同じブランチにいるチームメンバーだけが利用できます。
  4. プルやフェッチは不要です。チームメイトがあなたと同じブランチにコミットすると、ワークスペースは自動的に更新されます。自動更新の仕組みと制御方法の詳細については、同期 を参照してください。

ブランチの管理

ブランチの削除

ブランチが不要になった場合は、削除できます。デフォルトブランチは削除できないことに注意してください。 デスクトップアプリのブランチ一覧で、削除したいブランチを右クリック(またはメニューアイコンをクリック)し、「Delete」を選択します。 Delete branch menu option 現在いるブランチを削除するとどうなりますか? 現在表示しているブランチを削除すると、リポジトリのメインページにリダイレクトされます。削除されたブランチをチェックアウトしていたワークスペースは、切り離された状態(detached state) のままになります — 現在のファイルとコミットされていない変更は保持されますが、どのブランチにも関連付けられなくなります。作業を続けるには、ワークスペースから別のブランチに切り替えます。 CLI での操作については、ブランチの削除やその他のオプションについて branch コマンド を参照してください。

削除したブランチを復元する

ブランチを削除するとブランチ一覧から消えますが、そのコミットは保持されます。これは、ブランチが一度もマージされていなかった場合も同じです。ブランチを元に戻すには、その最後のコミットから新しいブランチを作成します。そのためには、コミット ID またはコミットメッセージに含まれる単語が必要です。 この操作は、Commits ビューまたはブランチグラフから行えます。
1

コミットを見つける

左側のナビゲーションレールで Commits をクリックし、All branches を選択します。検索ボックスにコミット ID またはコミットメッセージの一部を入力します。Current branch では、削除したブランチのコミットは見つかりません。
2

ブランチを作成する

コミットを右クリックし、Create branch from here を選択します。名前を入力し、ワークスペースを新しいブランチに移動するために Switch to branch をオンのままにして、Create をクリックします。All branches で見つけたコミットと、Create branch from here を含むそのメニュー
CLI では、コミットをチェックアウトしてから、そこからブランチを作成します:

ブランチの名前変更

デスクトップアプリからブランチの名前を変更できます。これは Git と同期されているリポジトリではサポートされていません。 ブランチ一覧で、名前を変更したいブランチを右クリック(またはメニューアイコンをクリック)し、「Rename」を選択します。新しい名前を入力して「Rename」をクリックします。 CLI での操作については、ブランチの名前変更について branch コマンド を参照してください。

デフォルトブランチの設定

デフォルトブランチは、新しいワークスペースを作成する際のベースとなるブランチです。デフォルトブランチを変更できるのは管理者のみで、このオプションはデスクトップアプリでのみ利用可能です。 ブランチ一覧で、デフォルトに設定したいブランチを右クリック(またはメニューアイコンをクリック)し、「Set as default branch」を選択します。このオプションは、リポジトリの管理者である場合にのみ表示されます。 このアクションに CLI で相当するものはありません。

マージ

ブランチでの作業が終わったら、メインブランチにマージすることができます。 マージは、一方のブランチのすべての変更を別のブランチに適用します。

マージの方法

デスクトップアプリでブランチセレクタを開き、Branches タブでマージしたいブランチを見つけて、そのメニューからマージオプションを選択します。 Merge branches 競合がなければ、ブランチ履歴に新しいマージコミットが表示されます。 A successful merge commit CLI での操作については、ブランチのマージについて merge コマンド を参照してください。

マージ競合

場合によっては、ブランチで行った変更が、他の誰かが別のブランチで行った変更と競合することがあります。 これらのブランチをマージしようとすると、これらの競合する変更をどう処理するか決める必要があります。 デスクトップアプリで、競合する変更があり マージの方法 の手順に従うと、マージ成功コミットの代わりに競合ファイルを示す画面が表示されます。 The merge conflict window 競合ウィンドウは 4 つの部分で構成されています(画像は右上で選べる Side by side 表示です):
  1. 競合する変更のあるファイルの一覧。
  2. 一覧の各ファイルごと:
    1. 受信側のファイル。これはマージ元のブランチにあるファイルの読み取り専用バージョンです。
    2. 現在のファイル。これはマージ先のブランチにあるファイルの読み取り専用バージョンです。
    3. 結果のファイル。これは競合を解決した後にファイルがどうなるかを示します。編集可能です。
競合を解決するには、どの変更を残し、どれを破棄するかを決める必要があります。受信版、現在版、またはその組み合わせを選択できます。 また、前述のとおり、結果ファイルを直接編集することもできます。 多くのファイルに同じ選択を適用したい場合は、ファイル一覧の上にあるチェックボックス(または Select all)で選択し、Resolve N selected を開いて Accept incoming または Accept current を選びます。 The Resolve N selected menu テキストファイルの解決案を AI に提案させるには、Resolve with AI をクリックします。AI で競合を解決する を参照してください。 完了したら、コミットメッセージを入力して Complete merge をクリックします。 CLI でマージ競合を解決する方法については、マージ競合の処理 (CLI) を参照してください。

テキストではないファイルのマージ

画像、3D モデル、スプライトシート、アニメーションなどのテキストではないファイルはマージできません。このマージプロセスが機能するのは、テキストファイルが人間可読で、行ごとに比較できるためです。 テキストではないファイルでマージ競合が発生した場合、選択肢は 2 つあります:
  1. これらのファイルをマージできる特定のツールがある場合、それを使って競合を解決できます。一例は Unreal Engine の組み込みマージツール で、プラグイン がある場合に使用できます。
  2. 片方のバージョンを選んで残し、もう片方を破棄する。

マージ競合の警告

Diversion には、他のチームメンバーが編集していてマージ競合を引き起こす可能性のあるファイルを警告する機能があります。 ファイルにマージ警告アイコンが表示されている場合、それをクリックすると誰がそのファイルを編集しているかの情報が得られます。マージ競合を防ぐため、作業前に必ず連絡を取り合いましょう。 前述のとおり、これはテキストではないファイルで作業する際には特に重要です。 The merge warning icon

多くのファイルに警告アイコンが表示されるのはなぜですか?

警告アイコンは、閲覧しているワークスペースだけでなく、リポジトリ上のいずれかのワークスペースで現在変更中(未コミット)のファイルを反映しています — それがコラボレーターのものであれ、あなた自身の別のものであれ。一度に大量のファイルに表示される場合、通常の原因は、それらのワークスペースの一つが大量の未コミット変更を保持していることです。そこにあるすべての変更ファイルは、そのブランチにいる全員に対してフラグが立てられます。 警告は変更を保持しているワークスペースの名前を教えてはくれませんが、アイコンをクリックすると、どのユーザーがそのファイルを編集しているかが表示されます。特定するには、そのユーザーが自分の ワークスペース それぞれで未コミットの変更を確認するか、リポジトリのオーナー/管理者がそのユーザーが所有するリポジトリ内のすべてのワークスペースを確認することができます(参照: ワークスペースの表示)。見つかったら、そのワークスペースの変更をコミットまたはリバートするか、不要であれば削除してください。