Main Content

Configurar el control de versiones de Git

Puede utilizar el control de versiones de Git™ en MATLAB® para gestionar sus archivos y colaborar con otros. Al utilizar Git, puede registrar los cambios en sus archivos y recuperar versiones específicas más tarde. Para obtener más información, consulte Use Git in MATLAB.

Antes de utilizar Git, siga estos pasos para configurarlo para MATLAB:

  • Registre los archivos binarios con Git para evitar que se dañen los archivos. (Obligatorio para todos los sistemas)

  • Configure MATLAB para Git en un sistema Windows®. (Recomendado para sistemas Windows)

  • Configure MATLAB para la autenticación SSH de Git o instale un asistente de credenciales de Git para evitar peticiones frecuentes de inicio de sesión. (Opcional)

  • Desactive la compresión para modelos Simulink® a fin de reducir el tamaño de su repositorio de Git. (Opcional)

  • Configure Git para utilizar Git LFS si está trabajando con archivos grandes. (Opcional)

  • Configure Git para utilizar MATLAB para Diff y Merge. (Opcional)

En las versiones anteriores a R2020b, debe tener instalado un cliente Git de línea de comandos para utilizar Git para fusionar ramas en MATLAB. Para obtener más información, consulte Instalar cliente de Git de línea de comandos.

Registrar archivos binarios con Git

Si utiliza herramientas de control de versiones externas, debe registrar sus extensiones de archivo de MATLAB y Simulink como .mlx, .mat, .fig, .mlapp, .mdl, .slx, .mdlp, .slxp, .sldd y .p como formatos binarios. Registre también extensiones para archivos MEX, como .mexa64, .mexmaci64, .mexmaca64 y .mexw64. Si no registra las extensiones, estas herramientas pueden dañar los archivos al enviarlos, cambiando los caracteres de final de línea, expandiendo los tokens, sustituyendo las palabras clave o intentando fusionar automáticamente. El daño se puede producir si utiliza herramientas de control de versiones que no sean de MATLAB o si intenta enviar archivos desde MATLAB sin registrar primero los formatos de archivo.

Compruebe también que otras extensiones de archivo estén registradas como binarias para evitar daños en la recepción. Compruebe y registre extensiones de archivos, como .xlsx, .jpg, .pdf, .docx, etc.

Para registrar las extensiones de sus archivos binarios con Git, añádalos a un archivo .gitattributes. Si crea un nuevo proyecto que utilice el control de versiones de Git o cambia un proyecto existente de otro sistema de control de versiones al control de versiones de Git, MATLAB crea automáticamente un archivo .gitattributes y lo rellena con una lista de archivos binarios comunes que se registrarán.

Si no se crea automáticamente un archivo .gitattributes, puede crear uno que contenga la lista de archivos binarios comunes que se registrarán. En la ventana de comandos de MATLAB, escriba lo siguiente:

copyfile(fullfile(matlabroot,'toolbox','shared','cmlink','git','auxiliary_files', ...
'mwgitattributes'),fullfile(pwd,'.gitattributes'))

De forma alternativa, para crear un archivo .gitattributes en blanco, introduzca:

edit .gitattributes

Para registrar archivos binarios que no están incluidos aún en el archivo .gitattributes, agregue una línea en el archivo para cada tipo de archivo que necesite. Por ejemplo, *.mlapp binary.

Configurar MATLAB para Git en Windows

En sistemas Windows, si está trabajando con archivos con rutas largas, active la compatibilidad para rutas largas. Además, para utilizar algunos Git Hooks con MATLAB, instale Cygwin y agréguelo a la ruta de la biblioteca de MATLAB. Los Git Hooks son scripts personalizados que se pueden activar por operaciones, como confirmar, fusionar y recibir confirmaciones automáticas.

Habilitar compatibilidad para rutas largas (recomendado)

Para habilitar la compatibilidad para rutas largas en un sistema Windows, ejecute este comando en MATLAB:

!git config --global core.longpaths true

Instalar Cygwin (opcional)

Para instalar Cygwin en un sistema Windows y agregarlo a la ruta de la biblioteca de MATLAB:

  1. Descargue y ejecute el instalador desde https://www.cygwin.com/.

  2. En MATLAB, abra librarypath.txt.

    edit(fullfile(matlabroot,"toolbox","local","librarypath.txt"))

  3. Agregue la ubicación de la carpeta de la papelera de reciclaje de Cygwin al final de librarypath.txt, por ejemplo, C:\cygwin64\bin.

    ##
    ## FILE: librarypath.txt
    ##
    ## Entries:
    ##    o path_to_jnifile
    ##    o [alpha,glnx86,sol2,unix,win32,mac]=path_to_jnifile
    ##    o $matlabroot/path_to_jnifile
    ##    o $jre_home/path_to_jnifile
    ##
    $matlabroot/bin/$arch
    $matlabroot/sys/jxbrowser/$arch/lib
    C:\cygwin64\bin

    Si no tiene permiso para editar el archivo librarypath.txt, consulte Locate Native Method Libraries.

  4. Reinicie MATLAB.

Configurar MATLAB para utilizar la autenticación de SSH de Git

Para evitar las frecuentes peticiones de inicio de sesión cuando interactúe con su repositorio remoto usando HTTPS, agregue una nueva clave pública y clone el repositorio usando SSH en su lugar. Esta tabla proporciona instrucciones sobre cómo configurar MATLAB para utilizar la autenticación SSH según su sistema operativo.

Sistema operativoInstrucciones
Windows
  1. Instale un cliente de Git de línea de comandos y póngalo a disposición de todo el sistema. Para comprobar si Git está instalado, introduzca el comando !git en la ventana de comandos de MATLAB. Si el comando no devuelve nada, tendrá que instalar la línea de comandos Git. Para obtener más información, consulte Instalar cliente de Git de línea de comandos.

  2. Cierre todas las sesiones de MATLAB.

  3. Genere una clave SSH utilizando el comando ssh-keygen. Por ejemplo, en una línea de comandos de Windows, introduzca este comando:

    ssh-keygen -t ed25519 -C "your_email@example.com"
    ssh-keygen le solicita que confirme dónde guardar la clave y le pide una contraseña. Si no desea escribir una contraseña al usar la clave, deje la contraseña vacía.

    Si ya tiene claves en la carpeta especificada, ssh-keygen pregunta si desea sobrescribirlas.

    En versiones previas a R2021a, especifique la opción -m PEM para generar una clave SSH en el formato RSA. De lo contrario, ssh-keygen crea la clave SSH utilizando el formato OpenSSH predeterminado, que no es compatible con versiones de MATLAB previas a la R2021a. Por ejemplo, en una línea de comandos de Windows, introduzca este comando:

    ssh-keygen -m PEM
    Si genera una clave SSH sin especificar la opción -m PEM, puede convertir la clave al formato RSA compatible utilizando este comando, donde ~/.ssh/id_rsa es el nombre del archivo con clave de SSH.
    ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

  4. Coloque las claves en la carpeta USERPROFILE/.ssh o HOME/.ssh. Para comprobar con qué carpeta de USERPROFILE está trabajando MATLAB, en la ventana de comandos de MATLAB, introduzca:

    getenv('USERPROFILE')

    En versiones previas a R2021a, si creó la clave SSH con la opción -m PEM, puede saltarse el paso 5.

  5. Para asegurarse de que MATLAB detecta las claves SSH, en la ventana de comandos de MATLAB, escriba lo siguiente:

    git = settings().matlab.sourcecontrol.git;
    git.PrivateKeyFile.PersonalValue = "C:\Users\username\.ssh\id_ed25519";
    git.PublicKeyFile.PersonalValue = "C:\Users\username\.ssh\id_ed25519.pub";

    Si ha introducido una contraseña al generar la clave SSH, configure MATLAB para usar la contraseña y recibir una solicitud una vez por sesión solamente. Para ello, utilice Pageant o, en la ventana de comandos de MATLAB, escriba lo siguiente:

    git.KeyHasPassphrase.PersonalValue = true;

    Para utilizar varias claves, utilice Pageant como agente de SSH. Si se está ejecutando Pageant, MATLAB busca claves en Pageant antes de buscar en USERPROFILE/.ssh.

  6. Configure su cuenta de GitHub® o GitLab® para utilizar las claves de SSH. Para hacerlo, vaya a la carpeta .ssh y copie el contenido del archivo .pub. Después, vaya a la configuración de su cuenta y, en la sección SSH keys, pegue el contenido del archivo .pub en el campo Add SSH key.

Linux® y macOS
  1. Cierre todas las sesiones de MATLAB.

  2. Genere una clave SSH utilizando el comando ssh-keygen. Por ejemplo, en la ventana Terminal, introduzca este comando:

    ssh-keygen -t ed25519 -C "your_email@example.com"
    ssh-keygen le solicita que confirme dónde guardar la clave y le pide una contraseña. Si no desea escribir una contraseña al usar la clave, deje la contraseña vacía.

    Si ya tiene claves en la carpeta especificada, ssh-keygen pregunta si desea sobrescribirlas.

    En versiones previas a R2021a, especifique la opción -m PEM para generar una clave SSH en el formato RSA. De lo contrario, ssh-keygen crea la clave SSH utilizando el formato OpenSSH predeterminado, que no es compatible con versiones de MATLAB previas a la R2021a. Por ejemplo, en la ventana Terminal, introduzca este comando:

    ssh-keygen -m PEM
    Si genera una clave SSH sin especificar la opción -m PEM, puede convertir la clave al formato RSA compatible utilizando este comando, donde ~/.ssh/id_rsa es el nombre del archivo con clave de SSH.
    ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

  3. Coloque las claves en la carpeta HOME/.ssh. Para comprobar con qué carpeta de HOME está trabajando MATLAB, en la ventana de comandos de MATLAB, introduzca:

    getenv('HOME')

    En versiones previas a R2021a, si creó la clave SSH con la opción -m PEM, puede saltarse el paso 4.

  4. Para asegurarse de que MATLAB detecta las claves SSH, en la ventana de comandos de MATLAB, escriba lo siguiente:

    git = settings().matlab.sourcecontrol.git;
    git.PrivateKeyFile.PersonalValue = "~/.ssh/id_ed25519";
    git.PublicKeyFile.PersonalValue = "~/.ssh/id_ed25519.pub";

    Si ha introducido una contraseña al generar la clave SSH, configure MATLAB para usar la contraseña y recibir una solicitud una vez por sesión solamente. Para ello, utilice un agente de SSH o, en la ventana de comandos de MATLAB, escriba lo siguiente:

    git.KeyHasPassphrase.PersonalValue = true;

    Para utilizar varias claves, utilice un agente de SSH. Si hay un agente de SSH en ejecución, MATLAB busca claves en el agente antes de buscar en HOME/.ssh.

  5. Configure su cuenta de GitHub o GitLab para utilizar las claves de SSH. Para hacerlo, vaya a la carpeta .ssh y copie el contenido del archivo .pub. Después, vaya a la configuración de su cuenta y, en la sección SSH keys, pegue el contenido del archivo .pub en el campo Add SSH key.

Instalar el asistente de credenciales de Git

Desde R2021a

Para configurar MATLAB para que recuerde los nombres de usuario y las contraseñas al utilizar Git, instale un asistente de credenciales. El asistente de credenciales recomendado para todas las plataformas es Git Credential Manager Core.

Por ejemplo, para instalar Git Credential Manager Core en un sistema Windows, descargue y ejecute el instalador de Git para Windows utilizando las instrucciones descritas en Instalar cliente de Git de línea de comandos. En la sección Choose a credential helper del instalador, seleccione Git Credential Manager Core como asistente de credenciales.

Para eliminar la información de inicio de sesión guardada en repositorios Git, siga las instrucciones según su sistema operativo.

Sistema operativoInstrucciones
Windows

Para restablecer las credenciales de Git para su repositorio, en el administrador de credenciales, en la pestaña Credenciales de Windows, elimine las entradas que hay en Credenciales genéricas.

Linux y macOS

Para restablecer las credenciales de Git para su repositorio, introduzca:

echo "url=https://github.com/myrepo.git" | git credential reject

Desactivar la compresión para modelos de Simulink

Puede reducir el tamaño del repositorio de Git guardando modelos de Simulink sin comprimir. Desactivar la compresión tiene como resultado unos archivos SLX más grandes en disco, pero reduce el tamaño del repositorio.

Para utilizar esta configuración con nuevos archivos SLX, cree sus modelos mediante una plantilla de modelos con la compresión de SLX establecida en ninguna. Para los archivos SLX existentes, establezca la compresión y, después, guarde el modelo. Para obtener más información, consulte Set SLX Compression Level (Simulink).

Nota

En R2023b, de forma predeterminada, Simulink no realiza ninguna compresión en la operación de guardado.

Configurar Git para utilizar Git LFS

Desde R2021a

Si está trabajando con archivos grandes, configure Git para utilizar Git Large File Storage (LFS) instalando un Git de línea de comandos y configurando LFS.

Por ejemplo, para utilizar Git LFS en un sistema Windows, descargue y ejecute el instalador de Git para Windows utilizando las instrucciones descritas en Instalar cliente de Git de línea de comandos. En la sección Select Components del instalador de Git para Windows, seleccione Git LFS (Large File Support) y los archivos .sh correspondientes que se van a ejecutar con las opciones Bash.

MATLAB no es compatible con el bloqueo de Git LFS. Además, MATLAB no es compatible con comandos LFS como git lfs track. En su lugar, utilice !git lfs track.

Configurar Git para utilizar MATLAB para Diff y Merge

Puede configurar Git para utilizar la herramienta de comparación de MATLAB para Diff y Merge. La herramienta de comparación de MATLAB proporciona herramientas para fusionar archivos de MathWorks® como scripts en vivo y archivos MAT, SLX o MDL. Puede utilizar la herramienta de autofusionado con Git para fusionar automáticamente ramas que contienen cambios en distintos subsistemas en el mismo archivo SLX.

Para obtener más información acerca de cómo configurar Git para utilizar la herramienta de comparación de MATLAB, consulte Customize External Source Control to Use MATLAB for Diff and Merge.

Instalar cliente de Git de línea de comandos

Para utilizar Git LFS o un asistente de credenciales, debe instalar un cliente de Git de línea de comandos y ponerlo a disposición de todo el sistema. En las versiones anteriores a R2020b, debe tener instalado un cliente Git de línea de comandos para utilizar Git para fusionar ramas en MATLAB.

Para comprobar si Git está instalado, introduzca el comando !git en la ventana de comandos de MATLAB. Si el comando no devuelve nada, tendrá que instalar la línea de comandos Git. Esta tabla proporciona instrucciones para instalar el Git de línea de comandos según su sistema operativo.

Sistema operativoInstrucciones
Windows
  1. Descargue y ejecute el instalador en https://gitforwindows.org/.

  2. En la sección Adjusting your PATH environment, elija la opción de instalación Git from the command line and also from 3rd-party software. Esta opción agrega Git a su variable PATH y hace que esté disponible en todo el sistema para que MATLAB se pueda comunicar con Git.

  3. En la sección para configurar las conversiones de nueva línea, elija la opción Checkout Windows-style, commit Unix-style line endings. El formato de nueva línea no se aplica entre máquinas y usuarios, pero puede admitir nuevas líneas consistentes para archivos de texto en el archivo .gitattributes de cada repositorio.

  4. Reinicie el sistema para que los cambios tengan efecto.

Linux

Git está disponible para la mayoría de distribuciones. Instale Git para su distribución. Por ejemplo, en Debian®, instale Git introduciendo:

sudo apt-get install git
macOSEn Mavericks (10.9) o superior, ejecute Git desde la ventana Terminal. Si todavía no tiene Git instalado, le pedirá que instale las herramientas de línea de comandos Xcode. Para obtener más información, consulte https://git-scm.com/doc.

Consulte también

Funciones

Temas relacionados