Compartilhar via


Conceitos básicos na integração do Git

Este artigo explica os conceitos básicos do Git e o processo de integração do Git ao workspace do Microsoft Fabric.

Permissões

  • Para usar a integração do Git, o administrador da sua organização deverá habilitá-la.
  • Se o espaço de trabalho e o repositório do Azureestiverem em duas regiões diferentes, o administrador de locatários deverá habilitar exportações entre áreas geográficas. Essa restrição não se aplica ao GitHub.
  • As ações que você pode executar em um espaço de trabalho dependem das permissões que você tem nele e no Git, conforme listadas nas próximas seções.

A lista abaixo mostra o que as diferentes funções do espaço de trabalho podem fazer, dependendo das permissões no repositório do Git:

  • Administrador: pode executar qualquer operação no espaço de trabalho, limitado apenas pela sua função no Git.
  • Membro/Contribuidor: uma vez conectado a um espaço de trabalho, um membro/contribuidor poderá fazer commit e atualizar alterações, dependendo da sua função no Git. Para ações relacionadas à conexão de workspace (por exemplo, conectar, desconectar ou alternar branches) procure ajuda de um Administrador.
  • Visualizador: não é possível executar nenhuma ação. O visualizador não pode ver nenhuma informação relacionada ao Git no workspace.

Funções de workspace

A tabela a seguir descreve as permissões necessárias no espaço de trabalho do Fabric para executar várias operações comuns:

Operação Função do espaço de trabalho
Conectar o workspace ao repositório do Git Admin
Sincronizar workspace com o repositório do Git Admin
Desconectar workspace do repositório do Git Admin
Alternar branch no workspace (ou qualquer alteração na configuração de conexão) Admin
Ver detalhes de conexão do Git Administrador, Membro, Colaborador
Ver o workspace “status do Git” Administrador, Membro, Colaborador
Atualizar a partir do Git Todos os seguintes:

Colaborador no workspace (permissão WRITE em todos os itens)

Proprietário do item (se o comutador de locatário bloquear atualizações para não proprietários)

BUILD em dependências externas (quando aplicável)
Confirmar alterações no workspace para o Git Todos os seguintes:

Colaborador no workspace (permissão WRITE em todos os itens)

Proprietário do item (se o comutador de locatário bloquear atualizações para não proprietários)

BUILD em dependências externas (quando aplicável)
Criar um novo branch do Git de dentro do Fabric Admin
Ramificação para um novo espaço de trabalho Administrador, Membro, Colaborador

Funções do Git

A tabela a seguir descreve as permissões necessárias do Git para executar várias operações comuns:

Operação permissões do Git
Conectar o workspace ao repositório do Git Read=Allow
Sincronizar workspace com o repositório do Git Read=Allow
Desconectar workspace do repositório do Git Nenhuma permissão é necessária
Alternar branch no workspace (ou qualquer alteração na configuração de conexão) Read=Allow (no repositório/diretório/branch de destino)
Ver detalhes de conexão do Git Leitura ou Nenhum
Ver o workspace “status do Git” Read=Allow
Atualizar a partir do Git Read=Allow
Confirmar alterações no workspace para o Git Read=Allow
Contribute=Allow
A política de branch deve permitir a confirmação direta
Criar um novo branch do Git de dentro do Fabric Role=Write
Create branch=Allow
Ramificação para um novo espaço de trabalho Read=Allow
Create branch=Allow

Conectar e sincronizar

Somente um administrador de espaço de trabalho pode conectar um espaço de trabalho a um repositório do Git, mas, uma vez conectado, qualquer pessoa com permissões poderá trabalhar nele. Se você não for um administrador, peça ajuda ao seu administrador para fazer a conexão.

Quando você conecta um workspace ao Git, o Fabric sincroniza entre os dois locais para que eles tenham o mesmo conteúdo. Durante a sincronização inicial, se o workspace ou o branch do Git estiver vazio enquanto o outro tiver conteúdo, o conteúdo será copiado do local não vazio para o vazio. Se tanto o workspace quanto o branch do Git tiverem conteúdo, você deverá decidir qual direção a sincronização deve seguir.

  • Se você confirmar seu workspace para o branch do Git, todo o conteúdo do workspace com suporte será exportado para o Git e substituirá o conteúdo do Git atual.
  • Se você atualizar o workspace com o conteúdo do Git, o conteúdo do workspace será substituído e você perderá o conteúdo do workspace. Como uma ramificação do Git sempre pode ser restaurada para um estágio anterior, enquanto um espaço de trabalho não pode, se você escolher esta opção, você deverá confirmar.

Captura de tela de uma caixa de diálogo perguntando para qual direção sincronizar se tanto o Git e o workspace tiver conteúdo.

Se você não selecionar qual conteúdo sincronizar, não poderá continuar trabalhando.

Captura de tela da notificação que você não pode continuar o trabalho até que o workspace esteja sincronizado.

Conectar-se a um espaço de trabalho compartilhado

Caso tente se conectar a um espaço de trabalho que já está conectado ao Git, você poderá receber a seguinte mensagem:

Captura de tela da mensagem de erro dizendo para você entrar em uma conta do Git.

Vá para a guia Contas no lado direito do painel de controle do código-fonte, escolha uma conta e conecte-se a ela.

Captura de tela da guia Contas com o usuário se conectando a uma conta do GitHub.

Status do Git

Depois de se conectar, o workspace exibe uma coluna Status do Git que indica o estado de sincronização de cada item no workspace em relação aos itens no branch remoto.

Captura de tela de itens em um workspace com seu status do Git destacado.

Cada item tem um dos seguintes status:

  • Sincronizado (o item é o mesmo no workspace e no branch do Git)
  • Conflito (o item foi alterado no workspace e no branch do Git)
  • Item sem suporte
  • Alterações não confirmadas no workspace
  • Atualização necessária do Git
  • O item é idêntico em ambos os locais, mas precisa ser atualizado para a última confirmação

Informação de sincronização

Enquanto você estiver conectado, as seguintes informações serão exibidas na parte inferior da tela:

  • Branch conectado
  • Hora da última sincronização
  • Link para a última confirmação com a qual o workspace está sincronizado

Captura de tela de informação da sincronização que aparece na parte inferior da tela quando conectado ao Git.

Painel de controle do código-fonte

Na parte superior da tela está o ícone Controle do código-fonte. Ele mostra o número de itens diferentes no workspace e no branch do Git. Quando são feitas alterações no espaço de trabalho ou no GIT branch, o número é atualizado. Quando o workspace é sincronizado com o branch do Git, o ícone Controle do código-fonte exibe um 0.

Captura de tela do ícone de controle de origem mostrando nenhum item alterado.

Selecione o ícone de controle do código-fonte para abrir o painel Controle do código-fonte.

O painel de controle do código-fonte tem três guias na lateral:

Commits e atualizações

Quando são feitas alterações no workspace ou no branch do Git, o ícone de controle do código-fonte mostra o número de itens diferentes. Selecione o ícone de controle do código-fonte para abrir o painel Controle do código-fonte.

O painel Fazer commit e atualizar tem duas seções.

Alterações mostra o número de itens que foram alterados no espaço de trabalho e precisam receber commit no Git.
Atualizações mostra o número de itens que foram modificados no GIT branch e precisam ser atualizados no espaço de trabalho.

Em cada seção, os itens alterados são listados com um ícone que indica o status:

  • novo
  • modificado
  • excluído
  • conflito

O botão Atualizar na parte superior do painel atualiza a lista de alterações e atualizações.

Captura de tela do painel de controle do código-fonte mostrando o status dos itens alterados.

Confirmar

  • Os itens no espaço de trabalho que foram alterados são listados na seção Alterações. Quando houver mais de um item alterado, você poderá selecionar quais deles confirmar no GIT branch.
  • Se houver atualizações feitas no branch do Git, as confirmações serão desabilitadas até que você atualize o workspace.

Atualizar

  • Ao contrário de confirmação e desfazer, o comando Atualizar sempre atualiza todo o branch e sincroniza com a confirmação mais recente. Você não pode selecionar itens específicos para atualizar.
  • Se forem feitas alterações no workspace e no branch do Git no mesmo item, as atualizações serão desabilitadas até que o conflito seja resolvido.

Leia mais sobre como confirmar e atualizar. Leia mais sobre o processo de atualização e como resolver conflitos.

Ramificações

A guia Branches do painel Controle do código-fonte permite gerenciar seus branches e executar ações relacionadas a eles. Ela tem duas seções principais:

  • Ações que você pode executar no branch atual:

    • Ramificação para novo espaço de trabalho (qualquer função): cria um espaço de trabalho e um branch com base no último commit do branch conectado ao espaço de trabalho atual. Ela se conecta ao novo espaço de trabalho e ao novo branch.
    • Fazer check-out de um novo branch (é necessário ser administrador do espaço de trabalho): cria um branch com base no último commit sincronizado no espaço de trabalho e altera a conexão do Git no espaço de trabalho atual. Isso não altera o conteúdo do espaço de trabalho.
    • Alternar o branch (deve ser administrador do workspace): sincroniza o workspace com outro branch novo ou existente e substitui todos os itens no workspace com o conteúdo do branch selecionado.

    Captura de tela da guia de ramificação no painel de controle do código-fonte.

  • Branches relacionados.
    A guia Branches também tem uma lista de espaços de trabalho relacionados que podem ser selecionados e alternados. Um espaço de trabalho relacionado é aquele com as mesmas propriedades de conexão que o branch atual, como a mesma organização, projeto, repositório e pasta do Git.
    Isso permite navegar até espaços de trabalho conectados a outros branches relacionados ao contexto do seu trabalho atual, sem precisar procurá-los na lista de espaços de trabalho do Fabric.
    Clique em um item da lista para abrir o espaço de trabalho relevante.

    Captura de tela mostrando uma lista de branches relacionados para os quais o usuário pode alternar.

Confira Limitações de ramificação para obter mais informações.

Detalhes da conta

A guia Detalhes da conta mostra os detalhes da conta do GitHub à qual o usuário está conectado. Ela tem duas seções. A seção superior mostra o provedor Git e o nome da conta. A seção inferior mostra o repositório e a ramificação aos quais o espaço de trabalho está conectado. Atualmente, essa guia só está disponível para espaços de trabalho conectados ao GitHub.

Os detalhes da conta do GitHub incluem:

  • Detalhes da conta do Git

    • Provedor
    • Account name
  • Repositório Git

  • Branch

Captura de tela da guia de contas no painel de controle do código-fonte mostrando os detalhes do Git e os nomes do repositório e da ramificação.

Considerações e limitações

Limitações gerais da integração do Git

  • O método de autenticação no Fabric deve ser pelo menos tão forte quanto o método de autenticação do Git. Por exemplo, se o Git exigir autenticação multifator, o Fabric também precisará exigir autenticação multifator.
  • No momento, não há suporte para os conjuntos de dados do Power BI conectados ao Analysis Services.
  • Espaços de trabalho com aplicativos de modelo instalados não podem ser conectados ao Git.
  • Nuvens soberanas não são compatíveis.
  • A conta do Azure DevOps deve ser registrada para o mesmo usuário que está utilizando o workspace do Fabric.
  • O administrador de locatários deverá habilitar exportações entre áreas geográficas se o espaço de trabalho e o repositório do Git estiverem em duas regiões geográficas diferentes.
  • Se a sua organização configurar o acesso condicional, certifique-se de que o Serviço do Power BI tenha as mesmas condições definidas para que a autenticação funcione conforme o esperado.
  • O tamanho do commit é limitado a 125 MB.

Limitações do GitHub Enterprise

Algumas configurações do GitHub Enterprise não são compatíveis. Por exemplo:

Limitações do workspace

  • Somente o administrador do espaço de trabalho pode gerenciar as conexões com o repositório do Git, como conectar, desconectar ou adicionar uma ramificação.
    Uma vez conectado, qualquer pessoa com permissão pode trabalhar no workspace.
  • A estrutura de pastas do espaço de trabalho não é refletida no repositório do Git. Os itens de espaço de trabalho em pastas são exportados para o diretório raiz.

Limitações de branch e pasta

  • O nome do branch pode ter no máximo 244 caracteres.
  • O caminho completo de nomes de arquivo pode ter no máximo 250 caracteres. Os nomes mais longos falham.
  • O arquivo pode ter no máximo 25 MB.
  • Você não pode baixar um relatório/conjunto de dados como .pbix do serviço depois de implantá-los com a Integração do Git.
  • A pasta do Git usará a ID lógica (Guid) como um prefixo antes do tipo se o nome de exibição do item:
    • Tiver mais de 256 caracteres
    • Terminar com . ou um espaço
    • Contiver qualquer um dos seguintes caracteres: " / : < > \ * ? |

Limitações de ramificação

  • A ramificação requer permissões listadas na tabela de permissões.
  • É necessário haver uma capacidade disponível para essa ação.
  • Todas as limitações de nomenclatura de espaço de trabalho e de branch se aplicam ao fazer a ramificação para um novo espaço de trabalho.
  • Ao fazer a ramificação, um novo espaço de trabalho é criado e as configurações do espaço de trabalho original não são copiadas. Ajuste quaisquer configurações ou definições para garantir que o novo espaço de trabalho atenda às políticas da sua organização.
  • Somente os itens com suporte do Git estão disponíveis no novo espaço de trabalho.
  • A lista de branches relacionados mostra apenas branches e espaços de trabalho que você tem permissão para exibir.
  • A integração do Git deve estar habilitada.

Limitações de sincronização e confirmação

  • Você só pode sincronizar em uma direção por vez. Você não pode confirmar e atualizar ao mesmo tempo.
  • Não há suporte para rótulos de confidencialidade e a exportação de itens com rótulos de confidencialidade pode estar desabilitada. Para confirmar itens que têm rótulos de confidencialidade sem o rótulo de confidencialidade, peça ajuda ao administrador.
  • Funciona com itens limitados. Itens não compatíveis na pasta serão ignorados.
  • Nomes duplicados não são permitidos. Mesmo se o Power BI permitir a duplicação de nomes, a ação de atualizar, fazer commit ou desfazer falhará.
  • Não há suporte para B2B.
  • A resolução de conflitos é realizada parcialmente no Git.
  • Durante o processo de Confirmar para o Git, o serviço do Fabric exclui todos os arquivos dentro da pasta do item que não fazem parte da definição do item. Arquivos não relacionados que não estejam em uma pasta de item não serão excluídos.
  • Após confirmar as alterações, você poderá notar algumas mudanças inesperadas no item que não foram feitas por você. Essas alterações são semanticamente insignificantes e podem ocorrer por vários motivos. Por exemplo:
    • Alteração manual do arquivo de definição do item. Essas alterações são válidas, mas podem ser diferentes daquelas feitas por meio dos editores. Por exemplo, se você renomear uma coluna do modelo semântico no Git e importar essa alteração para o espaço de trabalho, na próxima vez que confirmar as alterações no modelo semântico, o arquivo bim será registrado como alterado e a coluna modificada será enviada para o final da matriz columns. Isso ocorre porque o mecanismo AS que gera os arquivos bim envia as colunas renomeadas para o final da matriz. Essa alteração não afeta a forma como o item funciona.
    • Confirmações de um arquivo que utiliza as quebras de linha CRLF. O serviço utiliza as quebras de linha LF (avanço de linha). Se você tiver arquivos de itens no repositório do Git com quebras de linha CRLF, quando você confirmar a partir do serviço, esses arquivos serão alterados para LF. Por exemplo, se você abrir um relatório no desktop, salve o projeto .pbip e carregue-o no Git usando CRLF.
  • Atualizar um modelo semântico usando a API de atualização aprimorada resulta em uma comparação do Git após cada atualização.