Compartir a través de


Conceptos básicos en la integración de Git

En este artículo se explican los conceptos básicos de Git y el proceso de integración de Git con el área de trabajo de Microsoft Fabric.

Permisos

  • El administrador de la organización debe habilitar la integración de Git.
  • El administrador de inquilinos debe habilitar la exportación entre regiones si el área de trabajo y repositorio de Azure están en dos regiones diferentes. Esta restricción no se aplica a GitHub.
  • Los permisos que tiene en el área de trabajo y Git, como se muestra en las secciones siguientes, determinan las acciones que puede realizar.

En la lista siguiente se muestra lo que pueden hacer los distintos roles de área de trabajo en función de sus permisos en su repo de Git:

  • Administrador: Puede realizar cualquier operación en el espacio de trabajo, limitado solo por su rol de Git.
  • Miembro o colaborador: una vez conectado a un área de trabajo, un miembro o colaborador puede confirmar y actualizar los cambios, en función de su rol de Git. Para las acciones relacionadas con la conexión del área de trabajo (por ejemplo, conectar, desconectar o cambiar ramas), busque ayuda de un Administrador.
  • Visor: no puede realizar ninguna acción. El visor no puede ver ninguna información relacionada con Git en el área de trabajo.

Roles de área de trabajo

En la tabla siguiente se describen los permisos necesarios en el espacio de trabajo de Fabric para realizar varias operaciones comunes:

Operación Rol de área de trabajo
Conectar el área de trabajo al repositorio de Git Administración
Sincronizar el área de trabajo con el repositorio de Git Administración
Desconectar el área de trabajo del repositorio de Git Administración
Cambiar rama en el área de trabajo (o cualquier cambio en la configuración de conexión) Administración
Ver los detalles de la conexión de Git Administrador, miembro, colaborador
Consultar el "estado de Git" del área de trabajo Administrador, miembro, colaborador
Actualización desde Git Todos los roles siguientes:

Colaborador en el área de trabajo (permiso WRITE en todos los elementos)

Propietario del elemento (si el modificador de inquilino bloquea las actualizaciones de nonowners)

BUILD en dependencias externas (si procede)
Guardar cambios en el área de trabajo en Git Todos los roles siguientes:

Colaborador en el área de trabajo (permiso WRITE en todos los elementos)

Propietario del elemento (si el modificador de inquilino bloquea las actualizaciones de nonowners)

BUILD en dependencias externas (si procede)
Crear una nueva rama de Git desde Fabric Administración
Bifurcar a otra área de trabajo Administrador, miembro, colaborador

Roles de Git

En la tabla siguiente se describen los permisos de Git necesarios para realizar varias operaciones comunes:

Operación Permisos de Git
Conectar el área de trabajo al repositorio de Git Leer=Permitir
Sincronizar el área de trabajo con el repositorio de Git Leer=Permitir
Desconectar el área de trabajo del repositorio de Git No se necesitan permisos
Cambiar rama en el área de trabajo (o cualquier cambio en la configuración de conexión) Read=Allow (en el repositorio/directorio/rama de destino)
Ver los detalles de la conexión de Git Lectura o ninguno
Consultar el "estado de Git" del área de trabajo Leer=Permitir
Actualización desde Git Leer=Permitir
Confirmar cambios en el área de trabajo en Git Leer=Permitir
Contribuir=Permitir
la directiva de rama debe permitir la confirmación directa
Crear una nueva rama de Git desde Fabric Rol=Escribir
Create branch=Allow
Ramificación a otra área de trabajo Leer=Permitir
Create branch=Allow

Conectar y sincronizar

Solo un administrador del área de trabajo puede conectar un área de trabajo a repos de Git, pero una vez conectado, cualquier persona con permisos puede trabajar en el área de trabajo. Si no es administrador, pida al administrador ayuda con la conexión.

Al conectar un área de trabajo a Git, Fabric se sincroniza entre las dos ubicaciones para que tengan el mismo contenido. Durante esta sincronización inicial, si el área de trabajo o la rama de Git está vacía mientras la otra tiene contenido, éste se copia desde la ubicación no vacía hacia la vacía. Si tanto el área de trabajo como la rama de Git tienen contenido, deberá decidir en qué dirección debe ir la sincronización.

  • Si confirma su área de trabajo en la rama de Git, todo el contenido compatible del área de trabajo se exporta a Git y sobrescribe el contenido actual de Git.
  • Si actualiza el área de trabajo con el contenido de Git, el contenido del área de trabajo se sobrescribe y pierde el contenido del área de trabajo. Puesto que una rama de Git siempre se puede restaurar en una fase anterior mientras que un área de trabajo no puede, si elige esta opción, se le pedirá que confirme.

Captura de pantalla del diálogo que pregunta en qué dirección sincronizar si tanto Git como el área de trabajo tienen contenido.

Si no selecciona qué contenidos desea sincronizar, no podrá seguir trabajando.

Notificación de que no puede seguir trabajando hasta que se sincronice el área de trabajo.

Carpetas

Las carpetas aún no se admiten en Git. Actualmente, todos los elementos aparecen en el nivel superior de la carpeta Git incluso si el área de trabajo tiene carpetas.

Nota:

Si el área de trabajo tiene carpetas y la carpeta Git conectada aún no tiene subcarpetas, se consideran diferentes. Obtienes un estado de cambios no confirmados en el panel de control de código fuente y necesitas confirmar los cambios en Git antes de actualizar el área de trabajo. Si actualiza primero, la estructura de carpetas de Git sobrescribe la estructura de carpetas del área de trabajo. Para obtener más información, consulte Control de cambios de carpeta de forma segura.

Control de los cambios de carpeta de forma segura

Si el área de trabajo tiene carpetas y la carpeta Git conectada aún no tiene subcarpetas, se consideran diferentes porque la estructura de carpetas es diferente. Al conectar un área de trabajo que tiene carpetas a Git, obtendrá un cambios no confirmados estado en el panel de control de código fuente y debe confirmar los cambios en Git antes de actualizar el área de trabajo.

Si no puede realizar cambios en la rama conectada directamente, debido a la directiva de rama o permisos, se recomienda usar la opción Rama de desprotección :

  1. Desproteger una nueva rama: use la característica de la rama de desprotección para crear una rama con el estado actualizado del área de trabajo de Fabric.
  2. Confirmar cambios en la carpeta: los cambios de carpeta del área de trabajo se pueden confirmar en esta nueva rama.
  3. Cambios de combinación: use los procesos normales de solicitud de incorporación de cambios (PR) y combinación para integrar estas actualizaciones de nuevo en la rama original.

Conexión a un área de trabajo compartida

Si intenta conectarse a un área de trabajo que ya está conectada a Git, es posible que reciba el siguiente mensaje:

Captura de pantalla del mensaje de error que indica que inicie sesión en una cuenta de Git.

Vaya a la pestaña Cuentas del lado derecho del panel de control de código fuente, elija una cuenta y conéctese a ella.

Captura de pantalla de la pestaña Cuentas con el usuario conectándose a una cuenta de GitHub.

Estado de Git

Tras conectarse, el área de trabajo muestra una columna Estado de Git que indica el estado de sincronización de cada elemento del área de trabajo en relación con los elementos de la rama remota.

Captura de pantalla de elementos en un área de trabajo con su estado Git destacado.

Cada elemento tiene uno de los siguientes estados:

  • Sincronizado (el elemento es el mismo en el área de trabajo y la rama de Git)
  • Conflicto (el elemento se cambió tanto en el área de trabajo como en la rama de Git)
  • Elemento no compatible
  • Cambios no confirmados en el área de trabajo
  • Actualización necesaria desde Git
  • El elemento es idéntico en ambos lugares, pero debe actualizarse al último commit.

Información de sincronización

Siempre que esté conectado, la siguiente información aparece en la parte inferior de la pantalla:

  • Rama conectada
  • Hora de la última sincronización
  • Enlace a la última confirmación con la que se sincroniza el área de trabajo

Captura de pantalla de la información de sincronización que aparece en la parte inferior de la pantalla cuando se conecta a Git.

Panel de control de código fuente

En la parte superior de la pantalla se encuentra el icono Control de código fuente. Muestra el número de elementos que son diferentes en el área de trabajo y la rama de Git. Cuando se realizan cambios en el área de trabajo o en la rama de Git, se actualiza el número. Cuando el área de trabajo se sincroniza con la rama de Git, el icono de control de código fuente muestra un 0.

Captura de pantalla del icono de control de código fuente que muestra cero elementos cambiados.

Seleccione el icono Control de código fuente para abrir el panel Control de código fuente.

El panel de control de código fuente tiene tres pestañas en el lado:

Confirmaciones y actualizaciones

Cuando se realizan cambios en el área de trabajo o en la rama de Git, el icono de control de código fuente muestra el número de elementos que son diferentes. Seleccione el icono control de código fuente para abrir el panel Control de código fuente.

El panel Confirmar y actualizar tiene dos secciones.

La sección Cambios muestra el número de elementos que se cambiaron en el área de trabajo y deben confirmarse en Git.
La sección Actualizaciones muestra el número de elementos que fueron modificados en la rama de Git y que deben actualizarse al área de trabajo.

En cada sección, los elementos modificados se muestran con un icono que indica el estado:

  • nuevo
  • modificado
  • eliminado
  • conflicto

El botón Actualizar de la parte superior del panel actualiza la lista de cambios y actualizaciones.

Captura de pantalla del panel de control de código fuente que muestra el estado de los elementos cambiados.

Commit

  • Los elementos del área de trabajo que se cambiaron se muestran en la sección Cambios. Cuando hay más de un elemento modificado, puedes seleccionar qué elementos deseas confirmar en la rama de Git.
  • Si se realizaron actualizaciones en la rama de Git, las confirmaciones se deshabilitan hasta que actualice el área de trabajo.

Actualizar

  • A diferencia de commit y undo, el comando Update siempre actualiza toda la rama y se sincroniza con el commit más reciente. No se pueden seleccionar elementos específicos para actualizar.
  • Si se realizaron cambios en el área de trabajo y en la rama de Git en el mismo elemento, las actualizaciones se deshabilitan hasta que se resuelva el conflicto.

Obtenga más información sobre cómo confirmar y actualizar. Obtenga más información sobre el proceso de actualización y cómo resolver conflictos.

Ramas

La pestaña Ramas del panel Control de código fuente permite administrar las ramas y realizar acciones relacionadas con la rama. Tiene dos secciones principales:

  • Acciones que puede realizar en la rama actual:

    • Ramificar hacia una nueva área de trabajo (colaborador y versiones posteriores): crea un área de trabajo nueva o cambia a un área de trabajo existente en función de la última confirmación en el área de trabajo actual. A continuación, se conecta al área de trabajo y a la rama de destino.
    • Creación de una nueva rama (debe ser administrador del área de trabajo): crea una nueva rama en función de la última confirmación sincronizada en el área de trabajo y cambia la conexión de Git en el área de trabajo actual. No cambia el contenido del área de trabajo.
    • Cambiar rama (debe ser administrador del área de trabajo): sincroniza el área de trabajo con otra rama nueva o existente e invalida todos los elementos del área de trabajo con el contenido de la rama seleccionada.

    Captura de pantalla de la pestaña de bifurcación en el panel de control de código fuente.

  • Ramas relacionadas.
    La pestaña Ramas también tiene una lista de áreas de trabajo relacionadas que puede seleccionar y a las que puede cambiar. Un área de trabajo relacionada es una con las mismas propiedades de conexión que la rama actual, como la misma organización, proyecto, repositorio y carpeta de git.
    Esta característica le permite navegar a áreas de trabajo conectadas a otras ramas relacionadas con el contexto del trabajo actual, sin tener que buscarlas en la lista de áreas de trabajo de Fabric.
    Para abrir el área de trabajo pertinente, seleccione el elemento de la lista.

    Captura de pantalla que muestra una lista de ramas relacionadas a las que puede cambiar el usuario.

Para obtener más información, consulte Limitaciones de bifurcación.

Detalles de la cuenta

La pestaña Detalles de la cuenta muestra los detalles de la cuenta de GitHub a la que se está conectado el usuario. Tiene dos secciones. En la sección superior se muestra el proveedor de Git y el nombre de cuenta. En la sección inferior se muestra el repositorio y la rama a la que está conectada el área de trabajo. Actualmente, esta pestaña solo está disponible para las áreas de trabajo conectadas a GitHub.

Los detalles de la cuenta de GitHub incluyen:

  • Detalles de la cuenta de Git

    • Proveedor
    • Nombre de la cuenta
  • Repositorio Git

  • Rama

Captura de pantalla de la pestaña Cuentas en el panel Control de código fuente en la que se muestran los detalles de Git y los nombres de la rama y el repositorio.

Consideraciones y limitaciones

Limitaciones generales de integración de Git

  • El método de autenticación en Fabric debe ser al menos tan seguro como el método de autenticación para Git. Por ejemplo, si Git requiere autenticación multifactor, Fabric también necesita autenticación multifactor.
  • Los conjuntos de datos de Power BI conectados a Analysis Services no se admiten en este momento.
  • Las áreas de trabajo con aplicaciones de plantilla instaladas no se pueden conectar a Git.
  • No se admiten submódulos.
  • No se admiten las nubes soberanas.

Limitaciones de GitHub Enterprise

No se admiten algunas configuraciones de GitHub Enterprise. Por ejemplo:

Limitaciones del área de trabajo

  • Solo el administrador del área de trabajo puede administrar las conexiones al repo de Git, como conectar, desconectar o agregar una rama.
    Una vez conectado, cualquier persona con permiso puede trabajar en el área de trabajo.

Limitaciones de rama y carpeta

  • La longitud máxima del nombre de rama es de 244 caracteres.
  • La longitud máxima de la ruta de acceso completa para los nombres de archivo es de 250 caracteres. Se produce un error en los nombres más largos.
  • El tamaño máximo de archivo es de 25 MB.
  • La estructura de carpetas se mantiene hasta 10 niveles de profundidad.
  • No puede descargar un informe o un conjunto de datos como .pbix desde el servicio después de implementarlos con Git Integration.
  • Si el nombre mostrado del elemento tiene alguna de estas características, se cambia el nombre de la carpeta Git al ID lógico (GUID) y tipo:
    • Tiene más de 256 caracteres
    • Termina con un . o un espacio
    • Contiene caracteres prohibidos, según se describe en las limitaciones del nombre de directorio
  • Al conectar un área de trabajo que tiene carpetas a Git, debe confirmar los cambios en el repositorio de Git si esa estructura de carpetas es diferente.

Limitaciones del nombre del directorio

  • El nombre del directorio que se conecta al repositorio de Git tiene las siguientes restricciones de nomenclatura:

    • El nombre del directorio no puede comenzar ni terminar con un espacio o una pestaña.
    • El nombre del directorio no puede contener ninguno de los siguientes caracteres: "/:<>\*?|
  • La carpeta item (la carpeta que contiene los archivos de elementos) no puede contener ninguno de los siguientes caracteres: ":<>\*?|. Si cambia el nombre de la carpeta a algo que incluye uno de estos caracteres, Git no se puede conectar ni sincronizar con el área de trabajo y se produce un error.

Limitaciones de bifurcación

  • La ramificación requiere permisos que se muestran en la tabla de permisos.
  • Debe haber una capacidad disponible para esta acción.
  • Todas las limitaciones de nomenclatura de área de trabajo y limitaciones de nomenclatura de rama se aplican al ramificar hacia una nueva área de trabajo.
  • Solo los elementos compatibles con Git están disponibles en la nueva área de trabajo.
  • La lista de ramas relacionadas solo muestra ramas y áreas de trabajo que tiene permiso para ver.
  • La integración de Git debe estar habilitada.
  • Al bifurcar, se crea una nueva rama y no se copia la configuración de la rama original. Ajuste cualquier configuración o definiciones para asegurarse de que el nuevo cumple las directivas de la organización.
  • Al ramificarse en un área de trabajo existente:
    • El área de trabajo de destino debe admitir una conexión de Git.
    • El usuario debe ser un administrador del área de trabajo de destino.
    • El área de trabajo de destino debe tener capacidad.
    • El área de trabajo no puede tener aplicaciones de plantilla.
  • Tenga en cuenta que, cuando se traslada a un área de trabajo, cualquier elemento que no esté guardado en Git puede perderse. Se recomienda confirmación los elementos que quiera conservar antes de la bifurcación.

Limitaciones de sincronización y confirmación

  • Solo se puede sincronizar en una dirección a la vez. No se puede confirmar y actualizar al mismo tiempo.
  • Las etiquetas de confidencialidad no se admiten y es posible que se deshabilite la exportación de elementos con etiquetas de confidencialidad. Para confirmar los elementos que tienen etiquetas de confidencialidad sin la etiqueta de confidencialidad, pida ayuda al administrador .
  • Funciona con elementos limitados. Si hay elementos no compatibles en la carpeta, se omiten.
  • No se permiten duplicaciones de nombres. Incluso si Power BI permite la duplicación de nombres, se produce un error en la acción de actualización, confirmación o deshacer.
  • B2B no está soportado.
  • La resolución de conflictos se realiza parcialmente en Git.
  • Durante el proceso Confirmar en Git, el servicio Fabric elimina los archivos dentro de la carpeta de elementos que no forman parte de la definición de elemento. Los archivos no relacionados que no están en una carpeta de elementos no se eliminan.
  • Después de confirmar los cambios, es posible que observe algunos cambios inesperados en el elemento que usted no hizo. Estos cambios son semánticamente insignificantes y pueden ocurrir por varias razones. Por ejemplo:
    • Cambiar manualmente el archivo de definición de elemento. Estos cambios son válidos, pero pueden ser diferentes de si se realizan a través de los editores. Por ejemplo, si cambia el nombre de la columna de un modelo semántico en Git e importa este cambio en el área de trabajo, la próxima vez que confirme los cambios en el modelo semántico, el archivo bim se registrará como modificado y la columna modificada será insertada en la parte posterior de la columns matriz. Esto se debe a que el motor de AS que genera los archivos bim inserta columnas cuyo nombre ha cambiado al final de la matriz. Este cambio no afecta a la forma en que funciona el elemento.
    • Confirmar un archivo que usa saltos de línea CRLF. El servicio usa saltos de línea LF (avance de línea). Si tenías archivos en el repositorio de Git con saltos de línea CRLF, cuando confirmas desde el servicio, estos archivos se cambian a LF. Por ejemplo, si abre un informe en el escritorio, guarde el archivo de proyecto (.pbip) y cárguelo en Git mediante CRLF.
  • La actualización de un modelo semántico mediante la API de actualización mejorada provoca una diferencia de Git después de cada actualización.