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

  • O administrador da sua organização deve habilitar a integração do Git.
  • O administrador do locatário precisa habilitar a exportação entre áreas geográficas se o workspace e repositório do Azure estiverem em duas regiões diferentes. Essa restrição não se aplica ao GitHub.
  • As permissões que você tem no workspace e no Git, conforme listado nas próximas seções, determinam as ações que você pode executar.

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 do espaço de trabalho (por exemplo, conectar, desconectar ou alternar ramificações) 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 do espaço de trabalho

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 Administrador
Sincronizar workspace com o repositório do Git Administrador
Desconectar o workspace do repositório do Git Administrador
Alternar o branch no workspace (ou qualquer alteração na configuração de conexão) Administrador
Ver detalhes de conexão do Git Administrador, Membro, Colaborador
Consulte o workspace “status do Git” Administrador, Membro, Colaborador
Atualizar a partir do Git Todas as seguintes funções:

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 nas dependências externas (quando aplicável)
Confirmar alterações no workspace para o Git Todas as seguintes funções:

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 nas dependências externas (quando aplicável)
Criar um novo branch do Git a partir do Fabric Administrador
Migrar para outro 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 Leia=Permitir
Sincronizar workspace com o repositório do Git Leia=Permitir
Desconectar o workspace do repositório do Git Nenhuma permissão é necessária
Alternar o 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
Consulte o workspace “status do Git” Leia=Permitir
Atualizar a partir do Git Leia=Permitir
Confirmar alterações no workspace para o Git Leia=Permitir
Contribuir=Permitir
A política de branch deve permitir o commit direto
Criar um novo branch do Git a partir do Fabric Função=Escrever
Criar branch=Permitir
Migrar para outro espaço de trabalho Leia=Permitir
Criar branch=Permitir

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 a área de trabalho ou a ramificação do Git estiver vazia enquanto a outra contém 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 espaço de trabalho com o conteúdo do Git, o conteúdo do espaço de trabalho será substituído e você perderá seus dados. 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.

Pastas

Quando conectada e sincronizada, a estrutura do workspace é espelhada no repositório Git, incluindo a estrutura de pastas. Itens de workspace em pastas são exportados para pastas com o mesmo nome no repositório Git. Por outro lado, itens em pastas Git são importados para pastas com o mesmo nome no workspace.

Observação

Como a estrutura de pastas é retida, se o workspace tiver pastas e a pasta Git conectada ainda não tiver subpastas, elas serão consideradas diferentes. Você obtém um status de alterações não confirmadas no painel de controle do código-fonte e precisa confirmar as alterações no Git antes de atualizar o workspace. Se você atualizar primeiro, a estrutura de pastas do Git substituirá a estrutura de pastas do workspace. Para obter mais informações, consulte Alterações de pasta: manipulação segura.

Captura de tela da área de trabalho e do branch Git correspondente com subpastas.

  • As pastas vazias não são copiadas para o Git. Quando você cria ou move itens para uma pasta, a pasta é criada no Git.
  • As pastas vazias no Git são excluídas automaticamente.
  • As pastas vazias no workspace não são excluídas automaticamente, mesmo que todos os itens sejam movidos para pastas diferentes.
  • A estrutura de pastas é mantida em até 10 níveis de profundidade.

Manipulando alterações de pasta com segurança

Se o workspace tiver pastas e a pasta Git conectada ainda não tiver subpastas, elas serão consideradas diferentes porque a estrutura de pastas é diferente. Ao conectar um workspace que tem pastas no Git, você obtém um status de alterações não confirmadas no painel de controle do código-fonte e precisa confirmar as alterações no Git antes de atualizar o workspace.

Se você não puder fazer alterações diretamente no branch conectado, devido à política de branch ou permissões, recomendamos usar a opção Branch de Checkout :

  1. Checkout de um Novo branch: use o recurso de branch de check-out para criar uma ramificação com o estado atualizado do workspace do seu Fabric.
  2. Confirmar Alterações de Pasta: todas as alterações de pasta de workspace podem ser confirmadas no novo branch.
  3. Mesclar alterações: use sua solicitação de pull (PR) regular e os processos de mesclagem para integrar essas atualizações novamente ao branch original.

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 informando 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 espaço de trabalho 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 espaço de trabalho e no branch do Git)
  • Item sem suporte
  • Alterações não confirmadas no espaço de trabalho
  • 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:

  • Filial conectada
  • Hora da última sincronização
  • Link para o último commit com o qual o workspace está sincronizado

Captura de tela de informações de sincronização que aparecem na parte inferior 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:

Confirmações 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 possui duas seções.

Alterações mostra o número de itens que foram alterados no espaço de trabalho e precisam ser commitados 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.

Fazer commit

  • 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 itens serão confirmados no branch do Git.
  • Se houver atualizações feitas no branch do Git, as confirmações serão desabilitadas até que você atualize seu workspace.

Atualizar

  • Ao contrário de dazer commit e desfazer, o comando Atualizar sempre atualiza todo o branch e sincroniza com o commit 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 Ramificações do painel de controle de versão permite gerenciar suas ramificações e executar ações relacionadas a elas. Ela tem duas seções principais:

  • Ações que você pode realizar na ramificação atual:

    • Ramificar para outro workspace (colaborador e acima): cria um workspace ou alterna para um workspace existente com base na última confirmação para o workspace atual. Em seguida, ele se conecta ao _workspace_ e ao _branch_ de destino.
    • Novo branch de checkout (precisa ser administrador do workspace): cria um branch com base na última confirmação sincronizada no workspace e altera a conexão do Git no workspace 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.
    Esse recurso permite que você navegue até espaços de trabalho conectados a outras ramificações associadas ao contexto do seu trabalho atual, sem a necessidade de procurá-los em sua lista de espaços de trabalho do Fabric.
    Para abrir o espaço de trabalho relevante, selecione o item na lista.

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

Para obter mais informações, consulte Limitações de ramificação.

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
    • Nome da conta
  • Repositório Git

  • Filial

Captura de tela da guia de contas no painel Controle do código-fonte mostrando os detalhes do Git e os nomes do repositório e do branch.

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.
  • Se você usar uma identidade de workspace em um artefato e confirmá-la no Git, ela poderá ser atualizada (de volta para um workspace de malha) somente em um workspace conectado à mesma identidade. Tenha cuidado, pois isso também afeta recursos como ramificação para fora.
  • Não há suporte para submódulos.
  • Não há suporte para nuvens soberanas.

Limitações do GitHub Enterprise

Não há suporte para algumas versões e configurações do GitHub Enterprise. Por exemplo:

  • GitHub Enterprise Cloud com residência de dados (ghe.com)
  • Não há suporte para o GitHub Enterprise Server com um domínio personalizado, mesmo que a instância esteja acessível publicamente
  • Github Enterprise Server hospedado em uma rede privada
  • Lista de IPs permitidos

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 espaço de trabalho.
  • Espaços de trabalho com aplicativos de modelo instalados não podem ser conectados ao Git.
  • O MyWorkspace não pode se conectar a um provedor Git.

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.
  • A estrutura de pastas é mantida com até 10 níveis de profundidade.
  • Não é recomendável baixar um relatório/conjunto de dados como .pbix do serviço depois de implantá-los com a integração do Git, pois os resultados não são confiáveis. É recomendável usar o PowerBI Desktop para baixar relatórios/conjuntos de dados como .pbix.
  • Se o nome de exibição do item tiver qualquer uma dessas características, a pasta Git será renomeada para a ID lógica (Guid) e digite:
  • Ao conectar um workspace que tenha pastas ao Git, você precisará confirmar alterações no repositório Git se essa estrutura de pastas for diferente.

Limitações de nome de diretório

  • O nome do diretório que se conecta ao repositório Git tem as seguintes restrições de nomenclatura:

    • O nome do diretório não pode começar nem terminar com um espaço ou uma guia.
    • O nome do diretório não pode conter nenhum dos seguintes caracteres: "/:<>\*?|
  • A pasta do item (a pasta que contém os arquivos de item) não pode conter nenhum dos seguintes caracteres: ":<>\*?|. Se você renomear a pasta para algo que inclua um desses caracteres, o Git não poderá se conectar ou sincronizar com o workspace e ocorrerá um erro.

Limitações de expansão

  • A ramificação requer permissões listadas na tabela de permissões.
  • É necessário haver uma capacidade disponível para essa ação.
  • Todos os workspaces e limitações de nomenclatura do branch se aplicam ao fazer o branch em um novo workspace.
  • Somente os itens com suporte do Git estão disponíveis no novo espaço de trabalho.
  • A lista de ramificações relacionadas mostra apenas as ramificações e espaços de trabalho que você tem permissão para ver.
  • A integração do Git deve estar habilitada.
  • Ao ramificar para fora, um novo branch é criado e as configurações do branch original não são copiadas. Ajuste as configurações ou definições para garantir que o novo atenda às políticas da sua organização.
  • Ao fazer o branch para um workspace existente:
    • O workspace de destino deve dar suporte a uma conexão Git.
    • O usuário deve ser um administrador do workspace de destino.
    • O espaço de trabalho de destino deve ter capacidade suficiente.
    • O espaço de trabalho não pode ter aplicativos modelo.
  • Observe que quando você faz o branch em um workspace, todos os itens que não são salvos no Git podem ser perdidos. Recomendamos que você faça o commit todos os itens que deseja manter antes de fazer o branch.

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 uma quantidade limitada de itens. 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, as ações de atualizar, confirmar ou desfazer falharão.
  • 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 usa as quebras de linha LF (alimentação de linha). Se você tiver arquivos de itens no repositório Git com quebras de linha CRLF, quando você fizer commit por meio do serviço, esses arquivos serão alterados para LF. Por exemplo, se você abrir um relatório na área de trabalho, salve o arquivo de projeto (.pbip) e carregue-o no Git usando CRLF.
  • Atualização de um modelo semântico usando a Enhanced refresh API resulta em um "Git diff" após cada atualização.