次の方法で共有


Git 統合の基本的な概念

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

アクセス許可

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

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

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

ワークスペースの役割

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

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

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

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

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

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

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

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

Git ロール

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

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

接続と同期

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

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

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

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

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

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

フォルダー

接続されて同期されると、ワークスペース構造は、フォルダー構造を含め、Git リポジトリにミラー化されます。 フォルダー内のワークスペース 項目は、Git リポジトリ内の同じ名前のフォルダーにエクスポートされます。 逆に、Git フォルダー内の項目は、ワークスペース内の同じ名前のフォルダーにインポートされます。

注釈

フォルダー構造は保持されるため、ワークスペースにフォルダーがあり、接続された Git フォルダーにサブフォルダーがまだない場合、それらは異なると見なされます。 ソース管理パネルで コミットされていない変更 の状態が表示され、ワークスペースを更新する前に Git に変更をコミットする必要があります。 最初に更新すると、Git フォルダー構造 によってワークスペース フォルダー構造が上書き されます。 詳細については、「 フォルダーの変更を安全に処理する」を参照してください。

ワークスペースとサブフォルダーを含む対応する Git ブランチのスクリーンショット。

  • 空のフォルダーは Git にコピーされません。 アイテムを作成またはフォルダーに移動すると、そのフォルダーが Git で作成されます。
  • Git の空のフォルダーは自動的に削除されます。
  • ワークスペース内の空のフォルダーは、すべてのアイテムが別のフォルダーに移動された場合でも、自動的に削除されません。
  • フォルダー構造は、最大 10 レベルの深さまで保持されます。

フォルダーの変更を安全に処理する

ワークスペースにフォルダーがあり、接続された Git フォルダーにサブフォルダーがまだない場合、フォルダー構造が異なるため、それらは異なると見なされます。 フォルダーを含むワークスペースを Git に接続すると、ソース管理パネルに コミットされていない変更 の状態が表示され、ワークスペースを更新する前に変更を Git にコミットする必要があります。

ブランチ ポリシーまたはアクセス許可により、接続されたブランチに直接変更を加えることができない場合は、 Checkout Branch オプションを使用することをお勧めします。

  1. 新しいブランチをチェックアウトする: チェックアウト ブランチ機能を使用して、Fabric ワークスペースの更新された状態のブランチを作成します。
  2. フォルダーの変更をコミットする: ワークスペース フォルダーの変更は、この新しいブランチにコミットできます。
  3. 変更のマージ: 通常の pull request (PR) およびマージ プロセスを使用して、これらの更新を元のブランチに統合します。

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

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

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

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

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

Git の状態

接続すると、ワークスペースには、リモート ブランチ内の項目に関連するワークスペース内の各項目の同期状態を示す Git 状態 列が表示されます。

ワークスペース内の項目の Git 状態がアウトライン表示されている場合のスクリーンショット。

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

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

同期情報

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

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

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

ソース管理ウィンドウ

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

変更された項目が 0 個表示されているソース管理アイコンのスクリーンショット。

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

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

コミットと更新

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

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

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

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

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

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

変更された項目の状態を示すソース管理パネルのスクリーンショット。

コミット

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

更新

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

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

ブランチ

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

  • Current Branch で実行できるアクション:

    • 別のワークスペース (共同作成者以上) に分岐する: 新しいワークスペースを作成するか、現在のワークスペースへの最後のコミットに基づいて既存のワークスペースに切り替えます。 その後、ターゲット ワークスペースとブランチに接続します。
    • 新しいブランチをチェックアウト する (ワークスペース管理者である必要があります): ワークスペースで最後に同期されたコミットに基づいて新しいブランチを作成し、現在のワークスペースの Git 接続を変更します。 ワークスペースの内容は変更されません。
    • ブランチの切り替え (ワークスペース管理者である必要があります): ワークスペースを別の新規または既存のブランチと同期し、選択したブランチの内容でワークスペース内のすべてのアイテムをオーバーライドします。

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

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

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

詳しくは、分岐制限事項をご覧ください。

アカウントの詳細

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

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

  • Git アカウントの詳細

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

  • ブランチ

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

考慮事項と制限事項

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

  • Fabric の 認証方法 は、少なくとも Git の認証方法と同じ強度である必要があります。 たとえば、Git で多要素認証が必要な場合、Fabric でも多要素認証が必要になります。
  • 現時点では、Analysis Services に接続されている Power BI データセットはサポートされていません。
  • 1 つの成果物でワークスペース ID を使用して Git にコミットした場合、同じ ID に接続されているワークスペースでのみ更新 (ファブリック ワークスペースに戻す) ことができます。 ブランチ アウトなどの機能にも影響するため、注意してください。
  • サブモジュールはサポートされていません。
  • ソブレンクラウドはサポート対象外です。
  • Azure DevOps アカウントは、Fabric ワークスペースを使用しているのと同じユーザーに登録する必要があります。
  • IP 条件付きアクセス ポリシーの検証を有効にする場合、Azure DevOps はサポートされません。
  • ワークスペースと Git リポジトリが 2 つの異なる地理的リージョンにある場合、テナント管理者はクロス geo エクスポートを有効にする必要があります。
  • 組織で 条件付きアクセスが構成されている場合は、 Power BI サービス に、想定どおりに機能するように認証に同じ 条件が設定 されていることを確認します。
  • コミットのサイズ制限は 125 MB です。

GitHub Enterprise の制限

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

  • データ所在地がある GitHub Enterprise Cloud (ghe.com)
  • カスタム ドメインを持つ GitHub Enterprise Server は、インスタンスがパブリックにアクセスできる場合でもサポートされていません
  • プライベート ネットワークでホストされている Github Enterprise Server
  • IP 許可リスト

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

  • 接続、切断、ブランチの追加など、 Git Repo への接続を管理できるのはワークスペース管理者だけです。
    接続すると、 アクセス許可 を持つすべてのユーザーがワークスペースで作業できるようになります。
  • テンプレート アプリがインストールされているワークスペースを Git に接続することはできません。
  • MyWorkspace は Git プロバイダーに接続できません。

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

  • ブランチ名の最大長は 244 文字です。
  • ファイル名の完全パスの最大長は 250 文字です。 これらより長い名前は失敗します。
  • 最大ファイル サイズは 25 MB です。
  • フォルダー構造は、最大 10 レベルの深さまで維持されます。
  • Git 統合を使用してレポート/データセットをデプロイした後、サービスから .pbix としてレポート/データセットをダウンロードすることはお勧めしません。結果は信頼できないためです。 PowerBI Desktop を使用して、レポート/データセットを .pbix としてダウンロードすることをお勧めします。
  • 項目の表示名にこれらの特性のいずれかが含まれている場合、Git フォルダーの名前は論理 ID (Guid) に変更され、次のように入力されます。
    • 256文字以上である
    • . またはスペース で終わる
    • ディレクトリ名の制限に関する説明に従って、禁止されている文字が含まれています
  • フォルダーを含むワークスペースを Git に接続する場合、その フォルダー構造 が異なる場合は、Git リポジトリに変更をコミットする必要があります。

ディレクトリ名の制限事項

  • Git リポジトリに接続するディレクトリの名前には、次の名前付け制限があります。

    • ディレクトリ名の先頭または末尾をスペースまたはタブにすることはできません。
    • ディレクトリ名に次の文字を含めることはできません: "/:<>\*?|
  • アイテム フォルダー (アイテム ファイルを含むフォルダー) には、次の文字を含めることはできません: ":<>\*?|。 フォルダーの名前をこれらの文字のいずれかを含む名前に変更すると、Git はワークスペースに接続または同期できないため、エラーが発生します。

分岐の制限事項

  • ブランチ アウトには、 アクセス許可テーブルに一覧表示されているアクセス許可が必要です。
  • このアクションには使用可能な容量が必要です。
  • 新しい ワークスペース に分岐するときは、ワークスペースと ブランチの名前付けの制限 がすべて適用されます。
  • 新しいワークスペースでは 、Git でサポートされている項目 のみを使用できます。
  • 関連するブランチの一覧には、表示するアクセス許可を持つブランチとワークスペースのみが表示されます。
  • Git 統合 を有効にする必要があります。
  • 分岐すると、新しいブランチが作成され、元のブランチの設定はコピーされません。 すべての設定または定義を調整して、新しい設定が組織のポリシーを満たしていることを確認します。
  • 既存のワークスペースに分岐する場合:
    • ターゲット ワークスペースは Git 接続をサポートしている必要があります。
    • ユーザーは、ターゲット ワークスペースの管理者である必要があります。
    • ターゲット ワークスペースには容量が必要です。
    • ワークスペースにテンプレート アプリを含めることはできません。
  • ワークスペースに分岐すると、Git に保存されていない項目が失われる可能性があることに注意してください。 分岐する前に、保持する項目を コミット することをお勧めします。

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

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