Condividi tramite


Concetti di base nell'integrazione Git

Questo articolo illustra i concetti di base di Git e il processo di integrazione di Git con l'area di lavoro di Microsoft Fabric.

Autorizzazioni

  • Per usare l'integrazione git, l'amministratore dell'organizzazione deve abilitarlo dall'amministratore dell'organizzazione.
  • Se l'area di lavoro e il repository di Azure si trovano in due aree diverse, l'amministratore tenant deve abilitare l'esportazione tra aree geografiche. Questa restrizione non si applica a GitHub.
  • Le azioni che si possono eseguire in un'area di lavoro dipendono dalle autorizzazioni disponibili sia nell'area di lavoro che in Git, come indicato nelle sezioni successive.

L'elenco seguente mostra cosa possono fare i ruoli dell'area di lavoro a seconda delle relative autorizzazioni nel repository Git:

  • Amministratore: può eseguire qualsiasi operazione nell'area di lavoro, limitato solo dal ruolo Git.
  • Membro/Contributore: dopo la connessione a un'area di lavoro, un membro/contributore può eseguire il commit e aggiornare le modifiche, a seconda del proprio ruolo Git. Per le azioni correlate alla connessione all'area di lavoro (ad esempio, connessione, disconnessione o modifica dei rami), chiedere aiuto a un amministratore.
  • Visualizzatore: non può eseguire alcuna azione. Il visualizzatore non può vedere informazioni correlate a Git nell'area di lavoro.

Ruoli dell'area di lavoro

Nella tabella seguente vengono descritte le autorizzazioni necessarie nell'area di lavoro di Fabric per eseguire varie operazioni comuni:

Operazione Ruolo area di lavoro
Connettere l'area di lavoro al repository Git. Amministratore
Sincronizzare l'area di lavoro con il repository Git Amministratore
Disconnettere l'area di lavoro dal repository Git Amministratore
Cambiare ramo nell'area di lavoro (o qualsiasi modifica nell'impostazione di connessione) Amministratore
Visualizzare i dettagli della connessione Git Amministratore, Membro, Contributore
Vedere lo "Stato Git" dell'area di lavoro Amministratore, Membro, Contributore
Aggiornare da Git Tutte le seguenti:

Contributore nell'area di lavoro (autorizzazione di SCRITTURA su tutti gli elementi)

Proprietario dell'elemento (se l'opzione del tenant blocca gli aggiornamenti per i non proprietari)

BUILD su relazioni esterne (ove applicabile)
Eseguire il commit delle modifiche dell'area di lavoro in Git Tutte le seguenti:

Contributore nell'area di lavoro (autorizzazione di SCRITTURA su tutti gli elementi)

Proprietario dell'elemento (se l'opzione del tenant blocca gli aggiornamenti per i non proprietari)

BUILD su relazioni esterne (ove applicabile)
Creare un nuovo ramo Git dall'interno di Fabric Amministratore
Creare un ramo in una nuova area di lavoro Amministratore, Membro, Contributore

Ruoli Git

Nella tabella seguente vengono descritte le autorizzazioni Git necessarie per eseguire varie operazioni comuni:

Operazione Autorizzazioni Git
Connettere l'area di lavoro al repository Git. Lettura=Consentita
Sincronizzare l'area di lavoro con il repository Git Lettura=Consentita
Disconnettere l'area di lavoro dal repository Git Autorizzazioni di Azure non necessarie
Cambiare ramo nell'area di lavoro (o qualsiasi modifica nell'impostazione di connessione) Lettura=Consentita (nel repository di destinazione/directory/ramo)
Visualizzare i dettagli della connessione Git Lettura o nessuna
Vedere lo "Stato Git" dell'area di lavoro Lettura=Consentita
Aggiornare da Git Lettura=Consentita
Eseguire il commit delle modifiche dell'area di lavoro in Git Lettura=Consentita
Contribuzione=Consentita
i criteri di ramo devono consentire il commit diretto
Creare un nuovo ramo Git dall'interno di Fabric Ruolo=Scrittura
Crea ramo=Consentita
Creare un ramo in una nuova area di lavoro Lettura=Consentita
Crea ramo=Consentita

Connetti e sincronizza

Solo un amministratore dell'area di lavoro può connettere un'area di lavoro a repository Git, ma una volta effettuata la connessione, chiunque abbia le autorizzazioni può lavorare nell'area di lavoro. Se non si è un amministratore, chiedere assistenza all'amministratore per la connessione.

Quando si connette un'area di lavoro a Git, Fabric esegue la sincronizzazione tra le due posizioni in modo che abbiano lo stesso contenuto. Durante la sincronizzazione iniziale, se l'area di lavoro o il ramo Git è vuoto mentre l'altro dispone di contenuto, il contenuto viene copiato dalla posizione non vuota a quella vuota. Se sia l'area di lavoro che il ramo Git hanno contenuto, occorre decidere in quale direzione deve andare la sincronizzazione.

  • Se si esegue il commit dell'area di lavoro nel ramo Git, tutto il contenuto supportato dell'area di lavoro viene esportato in Git e sovrascrive il contenuto Git corrente.
  • Se si aggiorna l'area di lavoro con il contenuto Git, il contenuto dell'area di lavoro viene sovrascritto e si perde il contenuto dell'area di lavoro. Poiché un ramo Git può sempre essere ripristinato a una fase precedente, mentre non si può fare per un'area di lavoro, se si sceglie questa opzione, viene richiesta la conferma.

Screenshot della finestra di dialogo che chiede in quale direzione sincronizzare se Git e l'area di lavoro dispongono di contenuto.

Se non si seleziona il contenuto da sincronizzare, non è possibile continuare a lavorare.

Screenshot della notifica che non è possibile continuare a lavorare fino a quando l'area di lavoro non viene sincronizzata.

Connettersi a un'area di lavoro condivisa

Se si tenta di connettersi a un'area di lavoro già connessa a Git, si potrebbe ricevere il messaggio seguente:

Screenshot del messaggio di errore che indica di accedere a un account Git.

Passare alla scheda Account sul lato destro del pannello di controllo del codice sorgente, scegliere un account e connettersi a esso.

Screenshot della scheda Account con l'utente che si connette a un account GitHub.

Git status

Dopo la connessione, l'area di lavoro mostra una colonna di stato Git che indica lo stato di sincronizzazione di ogni elemento nell'area di lavoro in relazione agli elementi nel ramo remoto.

Screenshot degli elementi in un'area di lavoro con lo stato Git descritto.

Ogni elemento ha uno degli stati seguenti:

  • Sincronizzato (l'elemento è lo stesso nell'area di lavoro e nel ramo Git)
  • Conflitto (l'elemento è stato modificato sia nell'area di lavoro che nel ramo Git)
  • Elemento non supportato
  • Modifiche non sottoposte a commit nell'area di lavoro
  • Aggiornamento obbligatorio da Git
  • L'elemento è identico in entrambe le posizioni, ma deve essere aggiornato all'ultimo commit

Informazioni di sincronizzazione

Purché sia stata effettuata la connessione, nella parte inferiore della schermata appaiono le informazioni seguenti:

  • Ramo connesso
  • Ora dell'ultima sincronizzazione
  • Collegamento all'ultimo commit a cui è sincronizzata l'area di lavoro

Screenshot delle informazioni di sincronizzazione che appaiono nella parte inferiore della schermata quando si è connessi a Git.

Pannello di controllo del codice sorgente

Nella parte superiore della schermata è presente l'icona del controllo del codice sorgente. Mostra il numero di elementi diversi nell'area di lavoro e nel ramo Git. Quando vengono apportate modifiche all'area di lavoro o al ramo Git, il numero viene aggiornato. Quando l'area di lavoro viene sincronizzata con il ramo Git, l'icona del Controllo del codice sorgente mostra uno 0.

Screenshot dell'icona del controllo del codice sorgente che mostra zero elementi modificati.

Selezionare l'icona del Controllo del codice sorgente per aprire il pannello di controllo del codice sorgente.

Il riquadro del controllo del codice sorgente include tre schede sul lato:

Commit e aggiornamenti

Quando vengono apportate modifiche all'area di lavoro o al ramo Git, l'icona del controllo del codice sorgente mostra il numero di elementi diversi. Selezionare l'icona del Controllo del codice sorgente per aprire il pannello di controllo del codice sorgente.

Il pannello Commit e aggiornamenti include due sezioni.

Le modifiche mostrano il numero di elementi modificati nell'area di lavoro ed è necessario eseguire il commit in Git.
Gli aggiornamenti mostrano il numero di elementi modificati nel ramo Git e devono essere aggiornati all'area di lavoro.

In ogni sezione, gli elementi modificati sono elencati con un'icona che indica lo stato:

  • nuovo
  • modificato
  • eliminato
  • in conflitto

Il pulsante Aggiorna nella parte superiore del pannello aggiorna l'elenco delle modifiche e degli aggiornamenti.

Screenshot del pannello di controllo del codice sorgente che mostra lo stato degli elementi modificati.

Eseguire il commit

  • Gli elementi modificati nell'area di lavoro sono elencati nella sezione Modifiche. Quando sono presenti più elementi modificati, è possibile selezionare gli elementi di cui eseguire il commit nel ramo Git.
  • Se sono stati apportati aggiornamenti al ramo Git, i commit vengono disabilitati fino a quando non si aggiorna l'area di lavoro.

Update

  • A differenza di Commit e Annulla, il comando Aggiorna permette di aggiornare sempre l'intero ramo e sincronizza al commit più recente. Non è possibile selezionare elementi specifici da aggiornare.
  • Se sono state apportate modifiche nell'area di lavoro e nel ramo Git nello stesso elemento, gli aggiornamenti vengono disabilitati fino a quando il conflitto non viene risolto.

Altre informazioni su come eseguire il commit e l'aggiornamento. Altre informazioni sul processo di aggiornamento e su come risolvere i conflitti.

Rami

La scheda Rami del pannello di controllo del codice sorgente consente di gestire i rami ed eseguire azioni correlate ai rami. Ha due sezioni principali:

  • Azioni che si possono eseguire nel ramo corrente:

    • Creare rami verso una nuova area di lavoro (qualsiasi ruolo): crea una nuova area di lavoro e un nuovo ramo in base all'ultimo commit del ramo connesso all'area di lavoro corrente. Si connette alla nuova area di lavoro e al nuovo ramo.
    • Checkout new branch (must be workspace admin): crea un nuovo ramo in base all'ultimo commit sincronizzato nell'area di lavoro e modifica la connessione Git nell'area di lavoro corrente. Non modifica il contenuto dell'area di lavoro.
    • Ramo switch (deve essere amministratore dell'area di lavoro): sincronizza l'area di lavoro con un altro ramo nuovo o esistente ed esegue l'override di tutti gli elementi nell'area di lavoro con il contenuto del ramo selezionato.

    Screenshot della scheda relativa alle diramazioni nel pannello di controllo del codice sorgente.

  • Rami correlati.
    La scheda Rami include anche un elenco di aree di lavoro correlate che si possono selezionare e visitare. Un'area di lavoro correlata è una con le stesse proprietà di connessione del ramo attuale, ad esempio la stessa organizzazione, progetto, repository e cartella Git.
    In questo modo è possibile passare alle aree di lavoro connesse ad altri rami correlati al contesto del lavoro corrente, senza doverle cercare nell'elenco di aree di lavoro di Fabric.
    Fare clic su un elemento nell'elenco per aprire l'area di lavoro pertinente.

    Screenshot che mostra un elenco di rami correlati a cui l'utente può passare.

Per altre informazioni, vedere Limitazioni dei rami.

Dettagli account

La scheda Dettagli dell'account mostra i dettagli dell'account GitHub a cui l'utente è connesso. Ha due sezioni. La sezione superiore mostra il provider Git e il nome dell'account. La sezione inferiore mostra il repository e il ramo a cui è connessa l'area di lavoro. Attualmente, questa scheda è disponibile solo per le aree di lavoro connesse a GitHub.

I dettagli dell'account GitHub includono:

  • Dettagli dell'account Git

    • Provider
    • Account name
  • Repository Git

  • Filiale

Screenshot della scheda Account nel pannello di controllo del codice sorgente che mostra i dettagli Git e i nomi dei repository e dei rami.

Considerazioni e limitazioni

Limitazioni generali per l'integrazione di Git

  • Il metodo di autenticazione in Fabric deve essere almeno sicuro quanto il metodo di autenticazione per Git. Ad esempio, se Git richiede l'autenticazione a più fattori, anche Fabric deve richiedere l'autenticazione a più fattori.
  • I set di dati di Power BI connessi ad Analysis Services non sono attualmente supportati.
  • Le aree di lavoro con app modello installate non possono essere connesse a Git.
  • I cloud sovrani non sono supportati.
  • L'account Azure DevOps deve essere registrato allo stesso utente che usa l'area di lavoro di Fabric.
  • L'amministratore tenant deve abilitare le esportazioni tra aree geografiche se l'area di lavoro e il repository Git si trovano in due aree geografiche diverse.
  • Se l'organizzazione configura l'accesso condizionale, assicurarsi che il servizio Power BI abbia le stesse condizioni impostate per l'autenticazione in modo che funzioni come previsto.
  • La dimensione del commit è limitata a 125 MB.

Limitazioni di GitHub Enterprise

Alcune impostazioni di GitHub Enterprise non sono supportate. Ad esempio:

Limitazioni dell'area di lavoro

  • Solo l'amministratore dell'area di lavoro può gestire le connessioni al repository Git, come la connessione, la disconnessione o l'aggiunta di un ramo.
    Dopo la connessione, chiunque disponga dell'autorizzazione può lavorare nell'area di lavoro.
  • La struttura delle cartelle dell'area di lavoro non si riflette nel repository Git. Gli elementi dell'area di lavoro nelle cartelle vengono esportati nella directory radice.

Limitazioni dei rami e delle cartelle

  • La lunghezza massima del nome del ramo è di 244 caratteri.
  • La lunghezza massima del percorso completo per i nomi dei file è di 250 caratteri. I nomi più lunghi avranno esito negativo.
  • La dimensione massima del file è di 25 MB.
  • Non è possibile scaricare un report o un set di dati in formato .pbix dal servizio dopo la distribuzione con l'integrazione git.
  • La cartella Git usa l'ID logico (Guid) come prefisso prima del tipo se il nome visualizzato dell'elemento:
    • Ha più di 256 caratteri
    • Termina con . o uno spazio
    • Contiene qualsiasi dei caratteri seguenti: " / : < > \ * ? |

Limitazioni dei rami

  • I rami hanno bisogno delle autorizzazioni elencate nella tabella delle autorizzazioni.
  • Per questa azione deve esserci una capacità disponibile.
  • Tutte le limitazioni di denominazione dei rami e dell'area di lavoro si applicano quando si esegue la diramazione in una nuova area di lavoro.
  • Quando si esegue la diramazione, viene creata una nuova area di lavoro e le impostazioni dell'area di lavoro originali non vengono copiate. Modificare le impostazioni o le definizioni per assicurarsi che la nuova area di lavoro soddisfi i criteri dell'organizzazione.
  • Nella nuova area di lavoro sono disponibili solo gli elementi supportati da Git.
  • L'elenco dei rami correlati mostra solo rami e aree di lavoro per cui si dispone dell'autorizzazione per la visualizzazione.
  • L'integrazione Git deve essere abilitata.

Limitazioni di sincronizzazione e commit

  • È possibile eseguire la sincronizzazione in una sola direzione alla volta. Non è possibile eseguire il commit e l'aggiornamento contemporaneamente.
  • Le etichette di riservatezza non sono supportate e l'esportazione di elementi con etichette di riservatezza potrebbe essere disabilitata. Per eseguire il commit di elementi con etichette di riservatezza senza l'etichetta di riservatezza, chiedere assistenza all'amministratore.
  • Funziona con elementi limitati. Gli elementi non supportati nella cartella vengono ignorati.
  • La duplicazione dei nomi non è consentita. Anche se Power BI consente la duplicazione dei nomi, l'azione di aggiornamento, commit o annullamento ha esito negativo.
  • B2B non è supportato.
  • La risoluzione del conflitto viene eseguita parzialmente in Git.
  • Durante il processo Commit in Git, il servizio di Fabric elimina i file all'interno della cartella dell'elemento che non fanno parte della definizione dell'elemento. I file non correlati non presenti in una cartella di elementi non vengono eliminati.
  • Dopo aver eseguito il commit delle modifiche, è possibile notare alcune modifiche impreviste all'elemento che non sono state apportate dall'utente. Queste modifiche sono semanticamente insignificanti e possono verificarsi per diversi motivi. Ad esempio:
    • Modificare manualmente il file di definizione dell'elemento. Queste modifiche sono valide, ma potrebbero essere diverse da quelle eseguite tramite gli editor. Ad esempio, se si rinomina una colonna del modello semantico in Git e si importa questa modifica nell'area di lavoro, al successivo commit delle modifiche apportate al modello semantico, il file bim verrà registrato come modificato e la colonna modificata verrà riportata alla fine della matrice columns. Questo perché il motore AS che genera i file bim esegue il push delle colonne rinominate alla fine della matrice. Questa modifica non influisce sul funzionamento dell'elemento.
    • Eseguire il commit di un file che utilizza interruzioni di riga CRLF. Il servizio usa interruzioni di riga LF (avanzamento riga). Se nel repository Git fossero presenti file di elementi con interruzioni di riga CRLF, quando si esegue il commit dal servizio questi file verrebbero modificati in LF. Ad esempio, se si apre un report sul desktop, salvare il progetto .pbip e caricarlo in Git usando CRLF.
  • L'aggiornamento di un modello semantico tramite l'API Aggiornamento avanzato causa una differenza di Git dopo ogni aggiornamento.