共用方式為


Git 整合的基本概念

本文章說明 Git 的基本概念和整合 Git 與 Microsoft Fabric 工作區的程序。

權限

  • 組織的系統管理員必須 啟用 Git 整合功能
  • 如果工作區和 azure 存放庫位於兩個不同的區域,租用戶系統管理員必須 啟用跨地理位置導出。 此限制不適用於 GitHub。
  • 您在工作區和 Git 中擁有的許可權,如下一節所列,決定您可以採取的動作。

下列清單顯示了根據它們在 Git 存放庫中的權限,不同的工作區角色可以執行的動作:

  • 管理員:可以在工作區上執行任何作業,僅受其 Git 角色所限制。
  • 成員/參與者:連線到工作區後,成員/參與者可以根據其 Git 角色提交和更新變更。 如需與工作區連線相關的動作 (例如,連線、中斷連線或切換分支),請向管理員尋求協助。
  • 檢視人員:無法執行任何動作。 觀察者在工作區中無法看見任何與 Git 相關的資訊。

工作區角色

下表描述了在 Fabric 工作區中執行各種常見作業所需的權限:

運算 工作區角色
將工作區連線至 Git 存放庫 管理員
同步工作區與 Git 存放庫 管理員
中斷工作區與 Git 存放庫的連線 管理員
在工作區切換分支(或任何連線設定的變更) 管理員
檢視 Git 連線的詳細資料 管理員、成員、參與者
參閱工作區「Git 狀態」 管理員、成員、參與者
從 Git 更新 下列所有角色:

工作區中的參與者 (具備所有項目的寫入權限)

項目的擁有者 (如果租用戶交換器對非擁有者封鎖更新)

在需要的情況下建構外部依賴
將工作區變更提交到 Git 下列所有角色:

工作區中的參與者 (具備所有項目的寫入權限)

項目的擁有者 (如果租用戶交換器對非擁有者封鎖更新)

在需要的情況下建構外部依賴
從 Fabric 內部建立新的 Git 分支 管理員
切換到其他工作區 管理員、成員、參與者

Git 角色

下表描述了執行各種常見作業所需的 Git 權限:

運算 Git 權限
將工作區連線至 Git 存放庫 閱讀 = 允許
同步工作區與 Git 存放庫 閱讀 = 允許
中斷工作區與 Git 存放庫的連線 無需任何權限
在工作區切換分支(或任何連線設定的變更) 讀取 = 允許 (在目標存放庫/目錄/分支中)
檢視 Git 連線的詳細資料 可讀或無內容
參閱工作區「Git 狀態」 閱讀 = 允許
從 Git 更新 閱讀 = 允許
將工作區變更提交到 Git 閱讀 = 允許
參與 = 允許
分支策略應允許直接提交
從 Fabric 內部建立新的 Git 分支 角色 = 寫入
建立分支 = 允許
切換到其他工作區 閱讀 = 允許
建立分支 = 允許

連線和同步

僅工作區管理員可以將工作區連線到 Git Repos,但一旦連線,具有權限的任何人均可以在工作區中工作。 如果您不是管理員,請向管理員尋求連線方面的協助。

將工作區連線至 Git 時,Fabric 會在這兩個位置之間同步,因此這兩個位置具有相同的內容。 在此初始同步期間,如果工作區和 Git 分支二者中任意一個位置是空的,而另一個有內容,則會將內容從非空位置拷貝到空位置。 如果工作區和 Git 分支均有內容,則必須決定同步方向。

  • 如果將工作區提交到 Git 分支,所有受支援的工作區內容都會匯出到 Git,並會覆蓋目前的 Git 內容。
  • 如果以 Git 內容更新工作區,則該工作區的內容會被覆寫,導致工作區內容遺失。 由於 Git 分支一律可以還原至上一個階段,而工作區則無法還原,因此如果選擇此選項,系統會要求您確認。

當 Git 和工作區均有內容時詢問要同步的方向的對話框螢幕擷取畫面。

如果未選取要同步的內容,則無法繼續運作。

在同步工作區之前無法繼續運作的通知的螢幕擷取畫面。

資料夾

Git 中尚不支援資料夾。 目前,即使您的工作區有資料夾,所有專案都會出現在 Git 資料夾的最上層。

備註

如果您的工作區有資料夾,且連線的 Git 資料夾還沒有子資料夾,則會被視為不同。 在原始碼控制面板中,您會看到 未提交的變更 狀態,您需要在更新工作區之前將變更提交到 Git。 如果您先更新,Git 資料夾結構 會覆寫工作區 資料夾結構。 如需詳細資訊,請參閱 安全地處理資料夾變更

安全地處理資料夾變更

如果您的工作區有資料夾,且連線的 Git 資料夾還沒有子資料夾,則會被視為不同,因為資料夾結構不同。 當您將具有資料夾的工作區連線至 Git 時,您會在原始檔控制面板中取得 未認可的變更 狀態,而且您必須在更新工作區之前認可 Git 的變更。

如果您無法直接變更已連結的分支,可能是因為分支政策或權限,我們建議您使用 檢出分支 選項:

  1. 切換到新分支:使用切換分支功能來建立具有您 Fabric 工作區最新狀態的分支。
  2. 提交資料夾變更:然後可以將任何工作區資料夾變更提交到這個新的分支。
  3. 合併變更:使用您的一般提取要求 (PR) 和合併程式,將這些更新整合回原始分支。

連線到共用工作區

如果嘗試連線到已連線到 Git 的工作區,可能會收到下列訊息:

錯誤訊息的螢幕快照,告知您登入 Git 帳戶。

前往 [原始檔控制] 面板右側的 [帳戶] 索引標籤,選擇一個帳戶,然後連線到該帳戶。

[帳戶] 索引標籤的螢幕擷取畫面,顯示了用戶連線到 GitHub 帳戶。

git 狀態

連線之後,工作區會顯示 [Git 狀態] 資料行,指出工作區中每個項目相對於遠端分支中項目的同步狀態。

工作區中項目 (其 Git 狀態已列出) 的螢幕擷取畫面。

每個項目都有下列其中一個狀態:

  • 已同步 (在工作區和 Git 分支中為同一個項目)
  • 衝突 (該項目在工作區和 Git 分支中均已被更改)
  • 不受支援的項目
  • 工作空間中未提交的變更
  • 需要從 Git 更新
  • 項目在這兩個地方都是相同的,但需要更新至最新的提交

同步資訊

只要已連線,下列資訊就會出現在螢幕底部:

  • 已連線的分支
  • 上次同步時間
  • 工作區所同步的最後一次提交的連結

已連線至 Git 時螢幕底部顯示的同步資訊的螢幕擷取畫面。

原始碼控制窗格

螢幕頂端為 [原始檔控制] 圖示。 其顯示工作區和 Git 分支中有差異的項目的數目。 對工作區或 Git 分支進行更改時,此數目也會更新。 當工作區已同步至 Git 分支時,原始檔控制圖示會顯示 0

原始檔控制圖示的螢幕擷取畫面,顯示無項目發生更改。

選取 [原始檔控制] 圖示以開啟 [原始檔控制] 面板。

原始檔控制窗格側邊有三個索引標籤:

提交和更新

對工作區或 Git 分支進行更改時,原始檔控制圖示會顯示有差異的項目的數目。 選取 [原始檔控制] 圖示以開啟 [原始檔控制] 面板。

提交和更新 面板有兩個區段。

[變更] 顯示工作區中已變更且需要認可至 Git 的項目數目。
更新 顯示在 Git 分支中已修改且必須更新至工作區的項目數量。

在每個區段中,已更改的項目會使用一個指出其狀態的圖示列出:

  • 新增
  • 已修改
  • 已刪除
  • 衝突

面板上方的 [重新整理] 按鈕用以更新變更清單。

螢幕擷取畫面,其中顯示已變更項目狀態的原始檔控制面板。

提交

  • 工作區中已更改的項目列在 [變更] 區段中。 當有多個已更改的項目時,你可以選擇哪些項目提交至 Git 分支。
  • 如果對 Git 分支進行了更新,則會停用提交,直到您更新工作區為止。

更新

  • 與提交和復原不同,更新命令會更新整個分支,並同步到最新的提交。 無法選取特定項目進行更新。
  • 如果在工作區和 Git 分支中的同一個項目做出了更改,則會停用更新,直至衝突解決為止。

深入了解如何提交更新。 深入更新程序以及如何解決衝突

分支

您可以使用 [原始檔控制] 面板的 [分支] 索引標籤管理分支並執行分支相關動作。 它有兩個主要區段:

  • 可以在最新分支上執行的動作

    • 切換到另一個工作區(貢獻者及以上級別):可以建立新的工作區,或根據目前工作區的最後一次提交,切換到現有的工作區。 然後,它會連線到目標工作區和分支。
    • 檢出新分支(必須為工作區管理員):根據工作區最後同步的提交建立新分支,並更改工作區的 Git 連線設置。 其不會更改工作區內容。
    • 切換分支 (必須是工作區管理員):將工作區與新的或現有的其他分支同步,並使用所選分支的內容覆蓋工作區中的所有項目。

    原始碼控制面板中分支索引標籤的螢幕擷取畫面。

  • 相關分支
    [c0]分支[/c0]頁籤中還有相關的工作區清單,您可以選擇並切換。 相關工作區與最新分支具有相同的連線屬性,例如相同的組織、專案、存放庫和 Git 資料夾。
    這項功能可讓您瀏覽至連線到與目前工作內容相關的其他分支的工作區,而不需要在 Fabric 工作區清單中尋找它們。
    若要開啟相關的工作區,請選取清單中的專案。

    顯示使用者可以切換之相關分支清單的螢幕擷取畫面。

如需詳細資訊,請參閱 分支延伸的限制

帳戶詳細資料

[帳戶詳細資料] 索引標籤顯示使用者所連線的 GitHub 帳戶的詳細資料。 它有兩個區段。 頂端區段顯示 Git 提供者和帳戶名稱。 底部區段顯示工作區所連線的存放庫和分支。 目前,此索引標籤僅適用於已連線至 GitHub 的工作區。

GitHub 帳戶詳細資料包括:

  • Git 帳戶詳細資料

    • 提供者
    • 帳戶名稱
  • Git 存放庫

  • 分支

原始檔控制面板中帳戶索引標籤的螢幕擷取畫面,其中顯示 Git 詳細資料、存放庫和分支名稱。

考量與限制

Git 整合的一般限制

  • Fabric 中的驗證方法必須至少與 Git 的驗證方法一樣嚴格。 例如,如果 Git 需要多重要素驗證,Fabric 也需要多重要素驗證。
  • 目前不支援連線至 Analysis Services 的 Power BI 資料集。
  • 已安裝範本應用程式的工作區無法連線到 Git。
  • 不支援子模組。
  • 主權雲端不被支援。
  • Azure DevOps 帳戶必須由與使用 Fabric 工作區的相同使用者註冊。
  • 如果已啟用 啟用IP條件式存取原則驗證,則不支援 Azure DevOps。
  • 如果工作區和 Git 存放庫位於兩個不同的地理區域,租用戶管理員必須啟用跨地區匯出
  • 如果您的組織設定 條件式存取,請確定 Power BI 服務 設定了相同的 條件,讓驗證如預期般運作。
  • 提交大小限制為 125 MB。

GitHub Enterprise 限制

不支援某些 GitHub Enterprise 設定。 例如:

工作區限制

  • 僅工作區管理員可以管理與 Git 存放庫的連線,例如連線、中斷連線或新增分支。
    連線之後,具有權限的任何人都可以在工作區中工作。

分支和資料夾限制

  • 分支名稱長度上限為 244 個字元。
  • 檔案名稱的完整路徑長度上限為 250 個字元。 名稱太長通常會失敗。
  • 檔案大小上限為 25 MB。
  • 資料夾結構最多可達到10個層級深。
  • 使用 Git 整合部署報表/資料集之後,您無法從服務中將它們下載為 .pbix
  • 如果項目的顯示名稱具有下列任何特性,Git 資料夾會重新命名為邏輯識別碼 (Guid) 並輸入:
  • 當您將具有資料夾的工作區連接到 Git 時,如果資料夾結構有所不同,則必須將變更提交至 Git 存放庫。

目錄名稱限制

  • 線上至 Git 存放庫的目錄名稱具有下列命名限制:

    • 目錄名稱不能以空格或 Tab 開頭或結尾。
    • 目錄名稱不能包含下列任何字元:/<>\*|
  • 項目資料夾(包含項目檔案的資料夾)不能包含下列任何字元:<>\*|。 如果您將資料夾重新命名為包含其中一個字元,則 Git 無法連線或同步處理工作區,並會發生錯誤。

分支限制

  • 進行分支操作需要權限資料表中所列的權限。
  • 必須有可用的容量才能執行此動作。
  • 所有工作區分支命名限制都會在分支至新的工作區時套用。
  • 新的工作區中僅 Git 支援的項目可用。
  • 相關的分支清單僅顯示您有權檢視的分支和工作區。
  • 必須啟用 Git 整合
  • 當建立分支時,會建立新的分支,而且不會複製原始分支中的設定。 調整任何設定或定義,以確保新符合貴組織的原則。
  • 擴展到現有工作空間時:
    • 目標工作區必須支援 Git 連線。
    • 用戶必須是目標工作區的管理員。
    • 目標工作區必須具有容量。
    • 工作區不能有範本應用程式。
  • 請注意,當您分支至工作區時,未儲存至 Git 的任何項目都會遺失。 建議您提交您想要保留的任何項目,然後,再創建分支。

同步和提交限制

  • 一次只能在一個方向上同步。 您無法同時提交和更新。
  • 不支援敏感度標籤,並且可能會停用匯出具有敏感度標籤的項目。 若要提交缺少敏感度標籤的項目,請向管理員尋求協助。
  • 適用於受限制的項目。 資料夾中不受支援的項目會略過。
  • 不允許複製名稱。 即使 Power BI 允許重複名稱,更新、認可或復原動作也會失敗。
  • 不支援 B2B。
  • 衝突解決有一部分是在 Git 中完成。
  • 認可至 Git 程序運作期間,Fabric 服務會刪除不屬於項目定義之項目資料夾內的檔案。 不會刪除不在項目資料夾中的非相關檔案。
  • 提交變更之後,您可能會注意到項目有一些您未做出的非預期改變。 這些變更在語意上無關緊要,且可能存在多個原因。 例如:
    • 手動變更項目定義檔案。 這些變更有效,但可能不同於透過編輯器完成的變更。 例如,如果您在 Git 中重新命名語意模型資料行,並將這項變更匯入至工作區,您下次認可對語意模型的變更時,bim 檔案將會註冊為已變更,並且所修改的資料行會被推送至 columns 陣列背面。 這是因為產生 bim 檔案的 AS 引擎會將重新命名的資料行推送至陣列結尾。 這項變更不會影響項目的運作方式。
    • 提交使用 CRLF 換行符號的檔案。 此服務使用 LF(換行)分行符號。 如果您的 Git 存放庫中有使用CRLF 換行符號的項目檔案,當您從服務端進行提交時,這些檔案會變更為使用 LF 換行符號。 例如,如果您在桌面中開啟報表,請儲存項目檔 (.pbip),並使用 CRLF將其上傳至 Git。
  • 若使用增強式重新整理 API 重新整理語意模型,系統會在每次重新整理之後產生 Git 差異。