Contenido principal

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

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 .

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)

  • Habilite la compatibilidad para rutas largas para Git en un sistema Windows®. (Recomendado para sistemas Windows)

  • Configure MATLAB para firmar confirmaciones. (Opcional)

  • 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)

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

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

A partir de la versión R2024a, la integración de Git en MATLAB ejecuta Git Hooks sin una configuración adicional. Los Git Hooks compatibles son pre-commit, commit-msg, post-commit, prepare-commit-msg, pre-push, pre-merge-commit, post-checkout y post-merge. Para ver un ejemplo, consulte Use Git Hooks in MATLAB.

Antes de la versión R2024a, para utilizar algunos Git Hooks con MATLAB, instale Cygwin™ y agréguelo en la ruta de la biblioteca MATLAB. Para obtener instrucciones, consulte Instalar Cygwin (antes de la versión R2024a).

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 al archivo .gitattributes de su repositorio. 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, cree un archivo .gitattributes en blanco en su repositorio y rellene su contenido.

  1. Añada * text=auto a la parte superior del archivo .gitattributes.

  2. Para cada extensión de archivo binario ext, agregue *.ext binary. Por ejemplo, *.mlapp binary.

Habilitar compatibilidad para rutas largas

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

!git config --global core.longpaths true

Habilitar la firma de confirmaciones

Para firmar confirmaciones, configure Git ejecutando estos comandos en MATLAB.

  • Habilite la firma de confirmaciones de manera automática.

    !git config --global commit.gpgsign true

  • Establezca la clave de firma y el formato de la clave. Los formatos de clave compatibles son X.509 y OpenPGP (predeterminado). En este ejemplo, el ID de la clave es 3AB5C344325645B2 y el formato de la clave es X.509.

    !git config --global user.signingkey 3AB5C344325645B2
    !git config --global gpg.format x509

  • Especifique la utilidad utilizada para firmar confirmaciones. En este ejemplo, el comando configura Git para usar smimesign como una utilidad de firmas.

    !git config --global gpg.x509.program smimesign

    Para usar OpenPGP en su lugar, ejecute !git config --global gpg.openpgp.program gpg.

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 usar la clave que ha definido en la configuración.

  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 usar la clave que ha definido en la configuración.

  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.

Administrar las credenciales de Git

MATLAB recuerda los nombres de usuario y tokens cuando interactúa con repositorios Git.

Como alternativa, también puede instalar un asistente de credenciales de Git externo y configurar MATLAB para que lo utilice en su lugar. El asistente de credenciales recomendado para todas las plataformas es Git Credential Manager Core. Para obtener más información, consulte Configurar MATLAB para que utilice el asistente de credenciales de Git.

Para eliminar la información de inicio de sesión guardada en un repositorio Git escriba lo siguiente en MATLAB:

matlab.git.clearCredential("https://github.com/myrepo.git")

Configurar MATLAB para que utilice el asistente de credenciales de Git

Para instalar Git Credential Manager Core en un sistema Windows y configurar MATLAB para que lo utilice para almacenar credenciales de Git, siga estos pasos:

  1. Descargue y ejecute el instalador de Git para Windows siguiendo las instrucciones descritas en Instalar cliente de Git de línea de comandos.

  2. En la sección Choose a credential helper del instalador, seleccione Git Credential Manager Core como asistente de credenciales. Esto define el valor de credential.helper en el archivo .gitconfig global.

    También puede establecer el valor de credential.helper en el archivo .gitconfig global de forma manual.

Desactivar la compresión para modelos de Simulink (antes de la versión R2023b)

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

A partir de la versión 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 herramientas externas de 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 herramientas externas de Git para utilizar la herramienta de comparación de MATLAB, consulte Customize External Source Control to Use MATLAB for Diff and Merge.

Configuración adicional

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 Select Components, asegúrese de seleccionar Git LFS y Associate .sh file to be run with Bash. Esto permitirá utilizar Git LFS y Git Hooks en Windows.

  3. 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.

  4. 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.

  5. 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.

Instalar Cygwin (antes de la versión R2024a)

Antes de la versión R2024a, para ejecutar algunos Git Hooks dentro de MATLAB, debe instalar Cygwin. Los Git Hooks compatibles son pre-commit, commit-msg, post-commit y pre-push.

Siga estos pasos para instalar Cygwin en un sistema Windows y agregarlo a la ruta de la biblioteca MATLAB y a la ruta del sistema.

  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 bin 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. Agregue la carpeta bin de Cygwin a la ruta del sistema. Para obtener más información, consulte https://www.mathworks.com/matlabcentral/answers/94933-how-do-i-edit-my-system-path-in-windows.

  5. Reinicie MATLAB.

Consulte también

Funciones

Temas