Git 統合の基本的な概念

この記事では、Git の基本的な概念と、Git と Microsoft Fabric ワークスペースを統合するプロセスについて説明します。

アクセス許可

  • Git 統合を使用するには、組織の管理者が Git 統合を有効にする必要があります。
  • ワークスペースと Azure リポジトリが 2 つの異なるリージョンにある場合、テナント管理者はクロスジオエクスポートを有効にする必要があります。 この制限は GitHub には適用されません。
  • ワークスペースで実行できるアクションは、次のセクションにリストされているように、ワークスペースと Git の両方で持っている権限によって異なります。

次のリストは、Git リポジトリでの権限に応じて、さまざまなワークスペース ロールが実行できる操作を示しています。

  • 管理者:Git ロールによってのみ制限され、ワー​​クスペースで任意の操作を実行できます。
  • メンバー/投稿者: ワークスペースに接続すると、メンバー/コントリビューターは Git ロールに応じて変更をコミットおよび更新できます。 ワークスペース接続に関連するアクション (接続、切断、ブランチの切り替えなど) の場合は、管理からヘルプを求めます。
  • 閲覧者: 何のアクションもできません。 閲覧者は、ワークスペースに Git 関連情報を表示できません。

ワークスペースのロール

次の表では、さまざまな一般的な操作を実行するために Fabric ワークスペースで必要なアクセス許可について説明します。

操作 ワークスペース ロール
ワークスペースを Git リポジトリに接続する Admin
ワークスペースを Git リポジトリと同期する Admin
ワークスペースを Git リポジトリから切断する Admin
ワークスペース内のブランチを切り替える (または接続設定の変更) Admin
Git 接続の詳細を表示する 管理者、メンバー、共同作成者
ワークスペースの 'Git 状態' を確認する 管理者、メンバー、共同作成者
Git から更新する 次のすべて:

ワークスペースの共同作成者 (すべてのアイテムに対する書き込みアクセス許可)

アイテムの所有者 (テナント スイッチが非所有者の更新をブロックする場合)

外部依存関係に基づいてビルドする (該当する場合)
ワークスペースの変更を Git にコミットする 次のすべて:

ワークスペースの共同作成者 (すべてのアイテムに対する書き込みアクセス許可)

アイテムの所有者 (テナント スイッチが非所有者の更新をブロックする場合)

外部依存関係に基づいてビルドする (該当する場合)
Fabric 内から新しい Git ブランチを作成する Admin
新しいワークスペースへの分岐 管理者、メンバー、共同作成者

Git ロール

次の表では、さまざまな一般的な操作を実行するために必要な Git アクセス許可について説明します。

操作 Git アクセス許可
ワークスペースを Git リポジトリに接続する Read=Allow
ワークスペースを Git リポジトリと同期する Read=Allow
ワークスペースを Git リポジトリから切断する アクセス許可は必要ありません
ワークスペース内のブランチを切り替える (または接続設定の変更) Read=Allow (ターゲット リポジトリ/ディレクトリ/ブランチ内)
Git 接続の詳細を表示する 読み取りまたはなし
ワークスペースの 'Git 状態' を確認する Read=Allow
Git から更新する Read=Allow
ワークスペースの変更を Git にコミットする Read=Allow
Contribute=Allow
ブランチ ポリシーで直接コミットを許可する必要がある
Fabric 内から新しい Git ブランチを作成する Role=Write
Create branch=Allow
新しいワークスペースへの分岐 Read=Allow
Create branch=Allow

接続と同期

ワークスペースを Git リポジトリに接続できるのはワークスペース管理者だけですが、接続後は権限を持つすべてのユーザーがワークスペースで作業できるようになります。 管理者でない場合は、管理者に連絡して、接続の支援をしてもらってください。

ワークスペースを Git に接続すると、2 つの場所の間で同じコンテンツが含まれるように Fabric が同期されます。 この初期同期中に、ワークスペースまたは Git ブランチのいずれか一方が空で、もう一方にコンテンツがある場合、コンテンツは、空ではない場所から空の場所にコピーされます。 ワークスペースと Git ブランチの両方にコンテンツがある場合は、同期の方向を決定する必要があります。

  • ワークスペースを Git ブランチにコミットすると、サポートされているすべてのワークスペース コンテンツが Git にエクスポートされ、現在の Git コンテンツが上書きされます。
  • Git コンテンツを使用してワークスペースを更新すると、ワークスペースのコンテンツが上書きされ、ワークスペースのコンテンツが失われます。 Git ブランチは常に前のステージに復元できますが、ワークスペースでは復元できないため、このオプションを選択した場合は、確認を求められます。

Git とワークスペースの両方にコンテンツがある場合に同期の方向をたずねるダイアログのスクリーンショット。

同期するコンテンツを選択しないと、作業を続けることができません。

ワークスペースが同期されるまで作業を続けることができないという通知のスクリーンショット。

共有ワークスペースに接続する

既に Git に接続 ワークスペースに接続しようとすると次のメッセージが表示されることがあります。

Git アカウントにサインインするように指示するエラー メッセージのスクリーンショット。

ソースコントロール パネルの右側にある アカウント タブに移動し、アカウントを選択して接続します。

ユーザーが GitHub アカウントに接続している [アカウント] タブのスクリーンショット。

Git の状態

接続すると、ワークスペースに Git 状態 列が表示されます。この列は、リモート ブランチ内のアイテムに対するワークスペース内の各アイテムの同期状態を示します。

ワークスペース内の項目と、それらの Git 状態の概要を示すスクリーンショット。

各アイテムは、次のいずれかの状態にあります:

  • 同期済み (項目はワークスペースと Git ブランチで同じです)
  • 競合 (項目がワークスペースと Git ブランチの両方で変更されました)
  • サポートされていないアイテムです
  • ワークスペースの項目がコミットされていません
  • Git からの更新が必要
  • アイテムは両方の場所で同じですが、最後のコミットに更新する必要があります

同期情報

接続している限り、画面の下部に次の情報が表示されます:

  • 接続されているブランチ
  • 前回の同期時刻
  • ワークスペースが同期されている最後のコミットへのリンク

Git に接続されてるときに画面の下部に表示される同期情報のスクリーンショット。

ソース管理ウィンドウ

画面の上部には、[ソース管理] アイコンがあります。 ワークスペースと Git ブランチで異なる項目の数が表示されます。 ワークスペースまたは Git ブランチに変更を加えると、番号が更新されます。 ワークスペースが Git ブランチと同期されると、[ソース管理] アイコンに 0 が表示されます。

変更されたアイテムがゼロだということを示す [ソース管理] アイコンのスクリーンショット。

[ソース管理] アイコンを選択して、[ソース管理] パネルを開きます。

ソース コントロール ペインの側面には 3 つのタブがあります。

コミットと更新

ワークスペースまたは Git ブランチのいずれかに変更が加えられた場合、[ソース管理] アイコンには、異なる項目の数が表示されます。 [ソース管理] アイコンを選択して、[ソース管理] パネルを開きます。

[コミットと更新] パネルには 2 つのセクションがあります。

変更 には、ワークスペースで変更され、Git にコミットする必要がある項目の数が表示されます。
更新 には、Git ブランチで変更され、ワークスペースに更新する必要がある項目の数が表示されます。

各セクションでは、変更されたアイテムが状態を示すアイコンと共に一覧表示されます:

  • 新規
  • 変更済み
  • 削除済み
  • 競合

パネルの上部の [更新] ボタン により、変更と更新の一覧が更新されます。

変更されたアイテムの状態を示す [ソース管理] ウィンドウのスクリーンショット。

Commit

  • 変更されたワークスペース内の項目は、「変更」セクションに一覧表示されます。 変更した項目が複数ある場合は、Git ブランチにコミットする項目を選択できます。
  • Git ブランチに対して更新が行われた場合、ワークスペースを更新するまでコミットは無効になります。

Update

  • コミット元に戻すのとは異なり、Update コマンドを使うと常にブランチ全体が更新され、最新のコミットに同期されます。 更新する特定のアイテムを選択することはできません。
  • ワークスペース内と Git ブランチ内で同じ項目が変更された場合、競合が解決されるまで更新は無効になります。

コミット更新の方法の詳細については、こちらをご覧ください。 更新プロセスと 競合を解決する方法の詳細については、こちらをご覧ください。

ブランチ

ソースコントロール パネルの [ブランチ] タブを使用すると、ブランチを管理したり、ブランチ関連のアクションを実行したりできます。 これには、次の 2 つの主要なセクションがあります:

  • 現在のブランチで実行できるアクション:

    • 新しいワークスペースへの分岐 (任意のロール): 現在のワークスペースに接続されているブランチの最後のコミットに基づいて、新しいワークスペースと新しいブランチを作成します。 新しいワークスペースと新しいブランチに接続します。
    • 新しいブランチ をチェックアウトする (ワークスペース管理者である必要があります): ワークスペースで最後に同期されたコミットに基づいて新しいブランチを作成し、現在のワークスペースの Git 接続を変更します。 ワークスペースの内容は変更されません。

    ソース管理パネルの [ブランチ アウト] タブのスクリーンショット。

  • 関連ブランチ
    [ブランチ] タブには、選択して切り替えることができる関連ワークスペースの一覧も表示されます。 関連ワークスペースは、同じ組織、プロジェクト、リポジトリ、git フォルダーなど、現在のブランチと同じ接続プロパティを持つワークスペースです。
    これにより、Fabric ワークスペースの一覧で検索しなくても、現在の作業のコンテキストに関連する他のブランチに接続されているワークスペースに移動できます。
    一覧のアイテムをクリックして、関連ワークスペースを開きます。

    ユーザーが切り替えることができる関連ブランチの一覧を示すスクリーンショット。

詳細については、「ブランチ アウトの制限事項」を参照してください。

アカウントの詳細

[アカウントの詳細] タブには、ユーザーが接続している GitHub アカウントの詳細が表示されます。 2つのセクションがあります。 上部のセクションには、Git プロバイダーとアカウント名が表示されます。 下部のセクションには、ワークスペースが接続されているリポジトリとブランチが表示されます。 現在、このタブは GitHub に接続されているワークスペースでのみ使用できます。

GitHub アカウントの詳細は次のとおりです。

  • Git アカウントの詳細

    • プロバイダー
    • アカウント名
  • Git リポジトリ

  • [Branch]\(ブランチ)

Git の詳細とリポジトリとブランチ名を示す [ソース] コントロール パネルの [アカウント] タブのスクリーンショット。

考慮事項と制限事項

一般的な Git 統合の制限事項

  • Fabric の認証方法は、少なくとも Git の認証方法と同程度に強力である必要があります。 たとえば、Git で多要素認証が必要な場合、Fabric でも多要素認証が必要になります。
  • 現時点では、Analysis Services に接続されている Power BI データセットはサポートされていません。
  • テンプレート アプリがインストールされているワークスペースを Git に接続することはできません。
  • ソブリン クラウドはサポートされていません。
  • Azure DevOps アカウントは、Fabric ワークスペースを使用しているのと同じユーザーに登録する必要があります。
  • ワークスペースと Git リポジトリが 2 つの異なる地理的リージョンにある場合、テナント管理者はクロス geo エクスポートを有効にする必要があります。
  • コミットのサイズ制限は 125 MB です。

GitHub Enterprise の制限

一部の GitHub Enterprise 設定はサポートされていません。 次に例を示します。

  • IP 許可リスト
  • プライベート ネットワーク

ワークスペースの制限事項

  • Git Repo への接続 (接続、切断、ブランチの追加など) は、ワークスペース管理者のみが管理できます。
    接続すると、アクセス許可を持つすべてのユーザーがワークスペースで作業できるようになります。
  • ワークスペース フォルダー構造は、Git リポジトリに反映されません。 フォルダー内のワークスペース項目は、ルート ディレクトリにエクスポートされます。

ブランチとフォルダーの制限事項

  • ブランチ名の最大長は 244 文字です。
  • ファイル名の完全パスの最大長は 250 文字です。 これらより長い名前は失敗します。
  • 最大ファイル サイズは 25 MB です。
  • レポートまたはデータセットは、Git 統合を使用してデプロイすると、サービスから .pbix としてダウンロードできなくなります。
  • Git でフォルダーに名前を付けるとき、アイテムの表示名のタイプの前に論理 ID (Guid) がプレフィックスとして追加されます。
    • 256 文字を超える場合
    • 末尾が . またはスペースの場合
    • 次のいずれかの文字が含まれる場合: " / : < > \ * ? |

ブランチ アウトの制限事項

  • ブランチ アウトには、アクセス許可テーブル に記載されているアクセス許可が必要です。
  • このアクションには使用可能な容量が必要です。
  • ワークスペースブランチの名前付けの制限事項 はすべて新しいワークスペースにブランチ アウトするときに適用されます。
  • ブランチ アウトすると、新しいワークスペースが作成され、元のワークスペースの設定はコピーされません。 すべての設定または定義を調整して、新しいワークスペースが組織のポリシーを満たしていることを確認します。
  • 新しいワークスペースでは、Git でサポートされている項目 のみを使用できます。
  • 関連するブランチの一覧には、表示するアクセス許可を持つブランチとワークスペースのみが表示されます。
  • Git 統合 を有効にする必要があります。

同期とコミットの制限事項

  • 同期できる方向は一度に 1 つだけです。 同時にコミットと更新をすることはできません。
  • 秘密度ラベルはサポートされていないため、秘密度ラベルを持つアイテムのエクスポートは無効化される可能性があります。 秘密度ラベルのない秘密度ラベルを持つアイテムをコミットするには、管理者にヘルプを依頼してください
  • 制限付きアイテムに対応しています。 フォルダー内のサポートされていない項目は無視されます。
  • 名前の複製は許可されません。 Power BI で名前の重複が許可されている場合でも、更新、コミット、または元に戻すアクションは失敗します。
  • B2B はサポートされていません。
  • 競合の解決 は部分的に Git で行われます。
  • Git へのコミット プロセス中に、Fabric サービスは、アイテム定義の一部ではないアイテム フォルダー内のファイルを削除します。 アイテム フォルダーにない無関係なファイルは削除されません。
  • 変更をコミットした後、自分が加えなかった予期しない変更が項目に加えられる場合があります。 これらの変更は意味的には重要ではなく、いくつかの理由で発生する可能性があります。 例:
    • 項目定義ファイルを手動で変更します。 これらの変更は有効ですが、エディターを使用して行った場合とは異なる可能性があります。 たとえば、Git でセマンティック モデル列の名前を変更し、この変更をワークスペースにインポートすると、次回セマンティック モデルに変更をコミットするときに、bim ファイルが変更済みとして登録され、変更された列が columns 配列の後ろにプッシュされます。 これは、bim ファイルを生成する AS エンジンが名前変更された列を配列の最後にプッシュするためです。 この変更は項目の動作には影響しません。
    • CRLF 改行を使用するファイルをコミットする。 このサービスでは LF (ライン フィード) 改行を使用しています。 CRLF 改行を含む項目ファイルが Git リポジトリにある場合、サービスからコミットすると、これらのファイルは LF に変更されます。 たとえば、デスクトップでレポートを開いた場合は、.pbip プロジェクトを保存し、CRLF を使用して Git にアップロードします。
  • 拡張更新 API を使ってセマンティック モデルを更新すると、更新のたびに Git diff が行われます。