Grundlegende Konzepte der Git-Integration
In diesem Artikel werden grundlegende Git-Konzepte und die Integration von Git in Ihren Microsoft Fabric-Arbeitsbereich erläutert.
Berechtigungen
- Der Administrator Ihrer Organisation muss Git-Integrationaktivieren.
- Der Mandantenadministrator muss den geoübergreifenden Export aktivieren, wenn sich der Arbeitsbereich und Azure Repository in zwei verschiedenen Regionen befinden. Diese Einschränkung gilt nicht für GitHub.
- Die Berechtigungen, die Sie sowohl im Arbeitsbereich als auch in Git haben, wie in den nächsten Abschnitten aufgeführt, bestimmen die Aktionen, die Sie ausführen können.
Erforderliche Git-Berechtigungen für beliebte Aktionen
Die folgende Liste zeigt, welche Möglichkeiten verschiedene Arbeitsbereichs-Rollen abhängig von ihren Git Repository-Berechtigungen bieten:
- Admin: Kann beliebige Vorgänge im Arbeitsbereich ausführen. Diese werden nur durch die Git-Rolle eingeschränkt.
- Mitglied/Mitwirkender: Sobald ein Mitglied/Mitwirkender eine Verbindung zu einem Arbeitsbereich herstellt, kann er je nach Git-Rolle Änderungen übernehmen und aktualisieren. Bei Aktionen im Zusammenhang mit der Arbeitsbereichsverbindung (z. B. Verbinden, Trennen oder Wechseln zwischen Branches) benötigen Sie Unterstützung von einem Administrator.
- Betrachter: Kann keine Aktionen ausführen. Der Betrachter kann keine Git-bezogenen Informationen im Arbeitsbereich sehen.
Erforderliche Fabric-Berechtigungen für beliebte Aktionen
Arbeitsbereichsrollen
In der folgenden Tabelle werden die Berechtigungen beschrieben, die zum Ausführen verschiedener allgemeiner Vorgänge im Fabric-Arbeitsbereich erforderlich sind:
Vorgang | Arbeitsbereichsrolle |
---|---|
Arbeitsbereich mit Git-Repository verbinden | Admin |
Arbeitsbereich mit Git-Repository synchronisieren | Admin |
Arbeitsbereich von Git-Repository trennen | Admin |
Branch im Arbeitsbereich wechseln (oder beliebige Änderung an der Verbindungseinstellung) | Admin |
Git-Verbindungsdetails anzeigen | Administrator, Mitglied, Mitwirkender |
„Git-Status“ des Arbeitsbereichs anzeigen | Administrator, Mitglied, Mitwirkender |
Aus Git aktualisieren | Alle folgenden Rollen: Mitwirkender im Arbeitsbereich (WRITE-Berechtigung für alle Elemente) Besitzer des Elements (wenn der Mandantenwechsel Updates für Nichtbesitzer blockiert) BUILD für externe Abhängigkeiten (sofern zutreffend) |
Änderungen des Arbeitsbereichs in Git festschreiben | Alle folgenden Rollen: Mitwirkender im Arbeitsbereich (WRITE-Berechtigung für alle Elemente) Besitzer des Elements (wenn der Mandantenwechsel Updates für Nichtbesitzer blockiert) BUILD für externe Abhängigkeiten (sofern zutreffend) |
Neuen Git-Branch in Fabric erstellen | Admin |
Wechseln zu einem anderen Arbeitsbereich | Administrator, Mitglied, Mitwirkender |
Git-Rollen
In der folgenden Tabelle werden die Git-Berechtigungen beschrieben, die zum Ausführen verschiedener allgemeiner Vorgänge erforderlich sind:
Vorgang | Git-Berechtigungen |
---|---|
Arbeitsbereich mit Git-Repository verbinden | Lesen=Erlauben |
Arbeitsbereich mit Git-Repository synchronisieren | Lesen=Erlauben |
Arbeitsbereich von Git-Repository trennen | Keine Berechtigungen erforderlich |
Branch im Arbeitsbereich wechseln (oder beliebige Änderung an der Verbindungseinstellung) | Read=Allow (im Zielrepository/-verzeichnis/-branch) |
Git-Verbindungsdetails anzeigen | Read oder keine |
„Git-Status“ des Arbeitsbereichs anzeigen | Read=Allow |
Aus Git aktualisieren | Read=Allow |
Arbeitsbereichsänderungen in Git committen | Lesen=Erlauben Contribute=Allow Branchrichtlinie sollte direkte Commits zulassen |
Neuen Git-Branch in Fabric erstellen | Rolle=Schreiben Branch erstellen=Erlauben |
Zu einem anderen Arbeitsbereich wechseln | Lesen=Erlauben Branch erstellen=Erlauben |
Verbinden und Synchronisieren
Ein Arbeitsbereich kann nur von einem Arbeitsbereichsadministrator mit Git Repos verbunden werden. Sobald die Verbindung jedoch hergestellt wurde, kann jeder mit entsprechenden Berechtigungen im Arbeitsbereich arbeiten. Wenn Sie kein Administrator sind, bitten Sie Ihren Administrator um Hilfe beim Herstellen einer Verbindung.
Wenn Sie einen Arbeitsbereich mit Git verbinden, wird Fabric zwischen den beiden Orten synchronisiert, sodass sie über dieselben Inhalte verfügen. Wenn bei dieser anfänglichen Synchronisierung entweder der Arbeitsbereich oder der Git-Branch leer ist, während der andere Inhalte aufweist, wird der Inhalt vom nicht leeren Ort an den leeren kopiert. Wenn sowohl der Arbeitsbereich als auch der Git-Branch über Inhalte verfügen, müssen Sie entscheiden, in welche Richtung die Synchronisierung erfolgen soll.
- Wenn Sie Ihren Arbeitsbereich in den Git-Branch committen, werden alle unterstützten Arbeitsbereichsinhalte nach Git exportiert und die aktuellen Git-Inhalte überschrieben.
- Wenn Sie den Arbeitsbereich mit den Inhalten aus Git aktualisieren, werden die Arbeitsbereichsinhalte überschrieben und gehen verloren. Während ein Git-Branch immer auf eine frühere Phase zurückgesetzt werden kann, ist das bei einem Arbeitsbereich nicht möglich. Daher werden Sie bei Auswahl dieser Option aufgefordert, den Vorgang zu bestätigen.
Wenn Sie nicht auswählen, welche Inhalte synchronisiert werden sollen, können Sie nicht weiterarbeiten.
Ordner
Ordner werden in Git noch nicht unterstützt. Derzeit werden alle Elemente auf der obersten Ebene des Git-Ordners angezeigt, auch wenn Ihr Arbeitsbereich Ordner enthält.
Hinweis
Wenn Ihr Arbeitsbereich Ordner enthält und der verbundene Git-Ordner noch keine Unterordner enthält, gelten sie als anders. Im Quellcodeverwaltungsbereich wird der Status Ausgecheckte Änderungen angezeigt. Sie müssen die Änderungen an Git committen, bevor Sie den Arbeitsbereich aktualisieren. Wenn Sie zuerst aktualisieren, überschreibt die Git-Ordnerstruktur die Ordnerstruktur des Arbeitsbereichs. Weitere Informationen finden Sie unter Sicherer Umgang mit Ordneränderungen.
Sicheres Behandeln von Ordneränderungen
Wenn Ihr Arbeitsbereich Ordner enthält und der verbundene Git-Ordner noch keine Unterordner enthält, werden sie als unterschiedlich angesehen, da die Ordnerstruktur unterschiedlich ist. Wenn Sie einen Arbeitsbereich verbinden, der Ordner in Git enthält, wird im Quellcodeverwaltungsbereich der Status Ausgecheckte Änderungen angezeigt. Sie müssen die Änderungen an Git committen, bevor Sie den Arbeitsbereich aktualisieren.
Wenn Sie Änderungen aufgrund von Branchrichtlinien oder -berechtigungen nicht direkt am verbundenen Branch vornehmen können, wird empfohlen, die Option Branch auschecken zu verwenden:
- Auschecken eines neuen Branches: Verwenden Sie das Feature zum Auschecken von Branches, um einen Branch mit dem aktualisierten Status Ihres Fabric-Arbeitsbereichs zu erstellen.
- Committen von Ordneränderungen: Änderungen am Arbeitsbereichsordner können dann an diesen neuen Branch committet werden.
- Mergen von Änderungen: Verwenden Sie Ihre gewohnten Pull Requests (PR) und Mergeprozesse, um diese Updates wieder in den ursprünglichen Branch zu integrieren.
Verbindung zu einem gemeinsamen Arbeitsbereich
Wenn Sie versuchen, eine Verbindung mit einem Arbeitsbereich herzustellen, der bereits mit Git verbunden ist, wird möglicherweise die folgende Meldung angezeigt:
Gehen Sie auf die Registerkarte Konten auf der rechten Seite der Quellcodeverwaltung, wählen Sie ein Konto aus und verbinden Sie sich damit.
Befehl „git status“
Nachdem Sie eine Verbindung hergestellt haben, wird im Arbeitsbereich eine Spalte mit dem Git-Status angezeigt, in der der Synchronisierungsstatus jedes Elements im Arbeitsbereich im Verhältnis zu den Elementen im Remotebranch angegeben ist.
Jedes Element weist eine der folgenden Statusangaben auf:
Synchronisiert (das Element ist im Arbeitsbereich und im Git-Branch identisch)
Konflikt (das Element wurde sowohl im Arbeitsbereich als auch im Git-Branch geändert)
Nicht unterstütztes Element
Ausgecheckte Änderungen im Arbeitsbereich
Update aus Git erforderlich
Das Element ist an beiden Stellen identisch, muss jedoch auf den letzten Commit aktualisiert werden
Informationen zur Synchronisierung
Solange Sie verbunden sind, werden die folgenden Informationen am unteren Bildschirmrand angezeigt:
- Verbundener Zweig
- Zeitpunkt der letzten Synchronisierung
- Link zum letzten Commit, mit dem der Arbeitsbereich synchronisiert wurde
Quellcodeverwaltungsbereich
Oben im Bildschirm befindet sich das Quellcodeverwaltungssymbol. Darin wird angezeigt, wie viele Elemente sich zwischen dem Arbeitsbereich und dem Git-Branch unterscheiden. Wenn Änderungen am Arbeitsbereich oder am Git-Branch vorgenommen werden, wird die Nummer aktualisiert. Wenn der Arbeitsbereich mit dem Git-Branch synchronisiert wird, zeigt das Symbol für die Quellcodeverwaltung 0 an.
Wählen Sie das Quellcodeverwaltungssymbol aus, um den Quellcodeverwaltungsbereich zu öffnen.
Der Quellcodeverwaltungsbereich enthält drei Registerkarten auf der Seite:
Commits und Updates
Wenn Änderungen am Arbeitsbereich oder am Git-Branch vorgenommen werden, wird im Quellcodeverwaltungssymbol angezeigt, wie viele Elemente unterschiedlich sind. Wählen Sie das Quellcodeverwaltungssymbol aus, um den Quellcodeverwaltungsbereich zu öffnen.
Der Commit- und Update-Panel verfügt über zwei Abschnitte.
Änderungen zeigen die Anzahl der Elemente an, die im Arbeitsbereich geändert wurden und für Git übernommen werden müssen.
Aktualisierungen zeigen die Anzahl der Elemente an, die im Git-Branch geändert wurden und die im Arbeitsbereich aktualisiert werden müssen.
In jedem Abschnitt werden die geänderten Elemente mit einem Symbol aufgeführt, das den Status angibt:
neu
geändert
gelöscht
Konflikt
Die Schaltfläche "Aktualisieren" oben im Bereich aktualisiert die Liste der Änderungen und Updates.
Commit
- Elemente im Arbeitsbereich, die geändert wurden, werden im Abschnitt Änderungen aufgeführt. Bei mehreren geänderten Elementen können Sie auswählen, welche Elemente an den Git-Branch übertragen werden sollen.
- Wenn Updates für den Git-Branch vorgenommen wurden, werden Commits deaktiviert, bis Sie Ihren Arbeitsbereich aktualisieren.
Aktualisieren
- Im Gegensatz zu commit und undo wird mit dem Befehl update immer der gesamte Branch aktualisiert und eine Synchronisierung mit dem letzten Commit ausgeführt. Sie können keine bestimmten Elemente für das Update auswählen.
- Wenn Änderungen im Arbeitsbereich und im Git-Branch für dasselbe Element vorgenommen wurden, werden Updates deaktiviert, bis der Konflikt behoben ist.
Weitere Informationen zum Ausführen von Commits und Updates finden Sie hier. Weitere Informationen zum Updateprozess und zum Beheben von Konflikten finden Sie hier.
Zweige
Auf der Registerkarte Zweige des Steuerungsbedienfelds für die Quellcodeverwaltung können Sie Ihre Zweige verwalten und Zweige betreffende Aktionen ausführen. Sie verfügt über zwei Hauptabschnitte:
Aktionen, die Sie im aktuellen Zweig ausführen können:
- Zu anderem Arbeitsbereich branchen (Mitwirkender und höher): erstellt einen neuen Arbeitsbereich oder wechselt basierend auf dem letzten Commit im aktuellen Arbeitsbereich zu einem vorhandenen Arbeitsbereich. Anschließend wird eine Verbindung mit dem Zielarbeitsbereich und dem Zielbranch hergestellt.
- Neuen Branch auschecken (muss Arbeitsbereichsadministrator sein): Erstellt einen neuen Branch basierend auf dem zuletzt synchronisierten Commit im Arbeitsbereich und ändert die Git-Verbindung im aktuellen Arbeitsbereich. Der Inhalt des Arbeitsbereichs wird nicht geändert.
- Branch wechseln (muss Arbeitsbereichsadministrator sein): synchronisiert den Arbeitsbereich mit einem anderen neuen oder vorhandenen Branch und ersetzt alle Elemente im Arbeitsbereich durch den Inhalt des ausgewählten Branchs.
Verwandte Verzweigungen.
Auf der Registerkarte Verzweigungen gibt es auch eine Liste verwandter Arbeitsbereiche, zu der Sie auswählen und wechseln können. Ein verwandter Arbeitsbereich ist ein Arbeitsbereich mit denselben Verbindungseigenschaften wie der Current Branch, z. B. dieselbe Organisation, dasselbe Projekt, dasselbe Repository und denselben Git-Ordner.
Mit diesem Feature können Sie zu Arbeitsbereichen navigieren, die mit anderen Verzweigungen im Zusammenhang mit dem Kontext Ihrer aktuellen Arbeit verbunden sind, ohne sie in Ihrer Liste der Fabric-Arbeitsbereiche suchen zu müssen.
Um den relevanten Arbeitsbereich zu öffnen, wählen Sie das Element in der Liste aus.
Weitere Informationen finden Sie unter Verzweigungseinschränkungen.
Kontodetails
Auf der Registerkarte Kontodetails werden Details des GitHub-Kontos angezeigt, mit dem der Benutzer verbunden ist. Sie verfügt über zwei Abschnitte. Im oberen Abschnitt werden der Git-Anbieter und der Kontoname angezeigt. Der untere Abschnitt zeigt Repository und Branch, mit denen der Arbeitsbereich verbunden ist. Derzeit ist diese Registerkarte nur für Arbeitsbereiche verfügbar, die mit GitHub verbunden sind.
Zu den GitHub-Kontodetails gehören:
Git-Kontodetails
- Anbieter
- Kontoname
Git-Repository
Zweig
Überlegungen und Einschränkungen
Allgemeine Einschränkungen bei der Git-Integration
- Die Authentifizierungsmethode in Fabric muss mindestens so stark sein wie die Authentifizierungsmethode für Git. Wenn Git beispielsweise eine Multi-Faktor-Authentifizierung erfordert, muss Fabric auch eine Multi-Faktor-Authentifizierung erfordern.
- Power BI-Datasets, die mit Analysis Services verbunden sind, werden derzeit nicht unterstützt.
- Arbeitsbereiche mit installierten Vorlagen-Apps können nicht mit Git verbunden werden.
- Untermodule werden nicht unterstützt.
- Sovereign Clouds werden nicht unterstützt.
- Das Azure DevOps-Konto muss für den Benutzer registriert werden, der auch den Fabric-Arbeitsbereich verwendet.
- Azure DevOps wird nicht unterstützt, wenn Überprüfung bedingter IP-Zugriffsrichtlinien aktivieren aktiviert ist.
- Der Mandantenadministrator muss geoübergreifende Exporte aktivieren, wenn sich der Arbeitsbereich und das Git Repository in zwei verschiedenen geografischen Regionen befinden.
- Wenn Ihre Organisation den bedingten Zugriff konfiguriert hat, stellen Sie sicher, dass im Power BI-Dienst wie erwartet dieselben Bedingungen für die Authentifizierung festgelegt sind.
- Das Größenlimit für ein Commit beträgt 125 MB.
GitHub Enterprise-Einschränkungen
Einige GitHub Enterprise-Einstellungen werden nicht unterstützt. Zum Beispiel:
- Liste zugelassener IP-Adressen
- Privates Netzwerk
- Benutzerdefinierte Domänen
Einschränkungen von Arbeitsbereichen
- Nur der Arbeitsbereichs-Admin ist in der Lage, Verbindungen mit dem Git-Repository zu verwalten, also z. B. Verbindungen herzustellen bzw. zu trennen oder einen Branch hinzuzufügen.
Sobald die Verbindung hergestellt wurde, kann jeder mit der geeigneten Berechtigung im Arbeitsbereich arbeiten.
Einschränkungen bei Branches und Ordnern
- Ein Branchname darf maximal 244 Zeichen lang sein.
- Die maximale Länge des vollständigen Pfads für Dateinamen beträgt 250 Zeichen. Längere Namen verursachen Fehler.
- Die maximale Dateigröße beträgt 25 MB.
- Die Ordnerstruktur wird bis zu 10 Ebenen tief beibehalten.
- Sie können einen Bericht/ein Dataset nicht als PBIX-Datei aus dem Dienst herunterladen, nachdem Sie diese mit der Git-Integration bereitgestellt haben.
- Wenn der Anzeigename des Elements eines dieser Merkmale aufweist, wird der Git-Ordner in die logische ID (Globally Unique Identifier, GUID) und den entsprechenden Typ umbenannt:
- mehr als 256 Zeichen enthält,
- Endet mit einem Punkt (.) oder einem Leerzeichen
- Enthält unzulässige Zeichen (siehe Einschränkungen für Verzeichnisnamen)
- Wenn Sie einen Arbeitsbereich mit Ordnern mit Git verbinden, müssen Sie Änderungen am Git-Repository übernehmen, wenn diese Ordnerstruktur unterschiedlich ist.
Einschränkungen für Verzeichnisnamen
Der Name des Verzeichnisses, das eine Verbindung mit dem Git-Repository herstellt, hat die folgenden Benennungseinschränkungen:
- Der Verzeichnisname kann nicht mit einem Leerzeichen oder einer Registerkarte beginnen oder enden.
- Der Verzeichnisname darf keines der folgenden Zeichen enthalten: "/:<>\*?|
Der Elementordner (der Ordner, der die Elementdateien enthält) darf keines der folgenden Zeichen enthalten: ":<>\*?|. Wenn Sie den Ordner in etwas umbenennen, das eines dieser Zeichen enthält, kann Git keine Verbindung mit dem Arbeitsbereich herstellen oder synchronisieren, und ein Fehler tritt auf.
Verzweigungseinschränkungen
- Zum Verzweigen sind die in der Berechtigungstabelle aufgeführten Berechtigungen erforderlich.
- Für diese Aktion muss eine verfügbare Kapazität vorhanden sein.
- Alle Arbeitsbereichs- und Brachnamensbeschränkungen gelten auch bei Verzweigungen in einen neuen Arbeitsbereich.
- Nur unterstützte Git-Elemente sind im neuen Arbeitsbereich verfügbar.
- In der Liste der verwandten Branches werden nur Branches und Arbeitsbereiche angezeigt, die Sie anzuzeigen berechtigt sind.
- Die Git-Integration muss aktiviert sein.
- Beim Verzweigen wird eine neue Verzweigung erstellt, und die Einstellungen aus der ursprünglichen Verzweigung werden nicht kopiert. Passen Sie alle Einstellungen oder Definitionen an, um sicherzustellen, dass das neue die Richtlinien Ihrer Organisation erfüllt.
- Beim Wechseln zu einem vorhandenen Arbeitsbereich:
- Der Zielarbeitsbereich muss eine Git-Verbindung unterstützen.
- Der Benutzer muss ein Administrator des Zielarbeitsbereichs sein.
- Der Zielarbeitsbereich muss über Kapazität verfügen.
- Der Arbeitsbereich kann keine Vorlagen-Apps enthalten.
- Beachten Sie, dass beim Verzweigen zu einem Arbeitsbereich alle Elemente, die nicht auf Git gespeichert sind, verloren gehen können. Es wird empfohlen, alle Elemente, die Sie beibehalten möchten, vor dem Verzweigen zu committen.
Einschränkungen bei Synchronisierungen und Commits
- Die Synchronisierung kann jeweils nur in eine Richtung ausgeführt werden. Commits und Updates können nicht gleichzeitig ausgeführt werden.
- Vertraulichkeitsbezeichnungen werden nicht unterstützt, und das Exportieren von Elementen mit Vertraulichkeitsbezeichnungen ist möglicherweise deaktiviert. Um Elemente mit Vertraulichkeitsbezeichnungen ohne die Vertraulichkeitsbezeichnung zu committen, bitten Sie Ihr Administratorteam um Unterstützung.
- Funktioniert mit einer begrenzten Anzahl von Elementen. Nicht unterstützte Artikel im Ordner werden ignoriert.
- Das Duplizieren von Namen ist nicht zulässig. Selbst wenn Power BI die Namensduplizierung erlaubt, schlägt die Aktion "update," "commit" oder "undo" fehl.
- B2B wird nicht unterstützt.
- Konflikte werden teilweise in Git gelöst.
- Während des Commit-Vorgangs an Git löscht der Fabric-Dienst alle Dateien im Artikel-Ordner, die nicht Teil der Artikel-Definition sind. Nicht verknüpfte Dateien, die sich nicht in einem Artikel-Ordner befinden, werden nicht gelöscht.
- Nach dem Committen von Änderungen werden Sie möglicherweise einige unerwartete Änderungen an dem Element feststellen, die Sie nicht vorgenommen haben. Diese Änderungen sind semantisch unbedeutend und können aus verschiedenen Gründen auftreten. Beispiel:
- Manuelles Ändern der Elementdefinitionsdatei. Diese Änderungen sind gültig, können sich aber von denen unterscheiden, die über die Editors vorgenommen werden. Wenn Sie beispielsweise eine Semantikmodellspalte in Git umbenennen und diese Änderung in den Arbeitsbereich importieren, wird die BIM-Datei beim nächsten Commit von Änderungen an das Semantikmodell als geändert registriert, und die geänderte Spalte wird an das Ende des
columns
-Arrays gepusht. Dies liegt daran, dass die AS-Engine, die die BIM-Dateien generiert, umbenannte Spalten an das Ende des Arrays pusht. Diese Änderung wirkt sich nicht auf die Funktionsweise des Elements aus. - Committen einer Datei, die CRLF-Zeilenumbrüche verwendet Der Dienst verwendet Zeilenvorschub-Zeilenumbrüche (Line Feed, LF). Wenn Sie im Git-Repository Dateien mit CRLF-Zeilenumbrüchen hatten, werden diese Dateien beim Dienst-Commit in LF geändert. Wenn Sie beispielsweise einen Bericht auf dem Desktop öffnen, speichern Sie die Projektdatei (.pbip) und laden Sie sie mit CRLFauf Git hoch.
- Manuelles Ändern der Elementdefinitionsdatei. Diese Änderungen sind gültig, können sich aber von denen unterscheiden, die über die Editors vorgenommen werden. Wenn Sie beispielsweise eine Semantikmodellspalte in Git umbenennen und diese Änderung in den Arbeitsbereich importieren, wird die BIM-Datei beim nächsten Commit von Änderungen an das Semantikmodell als geändert registriert, und die geänderte Spalte wird an das Ende des
- Beim Aktualisieren eines Semantikmodells mithilfe der API für erweiterte Aktualisierungen wird nach jeder Aktualisierung ein Git-Diff erstellt.