Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

设置 Git 源代码管理

您可以使用 MATLAB® 中的 Git™ 源代码管理来管理您的文件并与其他人协作。使用 Git,您可以跟踪对文件的更改,并在以后重新调用特定版本。有关详细信息,请参阅Use Git in MATLAB

在使用 Git 之前,请按照以下步骤为 MATLAB 进行设置:

  • 用 Git 注册您的二进制文件以避免文件损坏。(所有系统都需要)

  • 在 Windows® 系统上为 Git 配置 MATLAB。(推荐用于 Windows 系统)

  • 将 MATLAB 配置为使用 Git SSH 身份验证或安装 Git 凭据助手,以防止频繁的登录提示。(可选)

  • 禁用 Simulink® 模型的压缩,以减小 Git 存储库的大小。(可选)

  • 如果您正在处理大型文件,请将 Git 配置为使用 Git LFS。(可选)

  • 将 Git 配置为使用 MATLAB 进行差异分析和合并。(可选)

在 R2020b 之前,必须安装命令行 Git 客户端,才能使用 Git 合并 MATLAB 中的分支。有关详细信息,请参阅安装命令行 Git 客户端

Git 中注册二进制文件

如果您使用第三方源代码管理工具,则必须将 .mlx.mat.fig.mlapp.mdl.slx.mdlp.slxp.sldd.p 等 MATLAB 和 Simulink 文件扩展名注册为二进制格式。还要注册 MEX 文件的扩展名,例如 .mexa64.mexmaci64.mexmaca64.mexw64。如果不注册这些扩展名,则当您通过更改行尾字符、扩展标记、替换关键字或尝试自动合并来提交文件时,这些工具可能会损坏您的文件。不论您是在 MATLAB 外部使用该源代码管理工具,还是在未先注册文件格式的前提下尝试从 MATLAB 提交文件,都可能发生损坏。

还要检查其他文件扩展名是否已注册为二进制文件,以避免在签入时损坏。检查并注册文件扩展名,例如 .xlsx.jpg.pdf.docx 等。

要用 Git 注册二进制文件扩展名,请将它们添加到 .gitattributes 文件中。如果您创建一个使用 Git 源代码管理的新工程,或将现有工程从另一个源代码管理系统切换到 Git 源代码管理,MATLAB 会自动创建一个 .gitattributes 文件,并用要注册的通用二进制文件列表填充该文件。

如果没有自动创建 .gitattributes 文件,您可以创建一个包含要注册的通用二进制文件列表的文件。在 MATLAB 命令行窗口中,输入:

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

或者,要创建空白 .gitattributes 文件,请输入:

edit .gitattributes

要注册尚未包含在 .gitattributes 文件中的二进制文件,请为所需的每种文件类型添加一行。例如,*.mlapp binary

Windows 上为 Git 配置 MATLAB

在 Windows 系统上,如果您正在处理具有长路径的文件,请启用对长路径的支持。此外,要将某种 Git Hook 与 MATLAB 结合使用,请安装 Cygwin 并将其添加到 MATLAB 库路径中。Git Hook 是自定义脚本,可由提交、合并和接收推送提交等操作触发。

启用对长路径的支持(推荐)

要在 Windows 系统上启用对长路径的支持,请在 MATLAB 中运行以下命令:

!git config --global core.longpaths true

安装 Cygwin(可选)

要在 Windows 系统上安装 Cygwin 并将其添加到 MATLAB 库路径,请执行以下操作:

  1. https://www.cygwin.com/ 下载并运行安装程序。

  2. 在 MATLAB 中,打开 librarypath.txt

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

  3. 将 Cygwin bin 文件夹位置添加到 librarypath.txt 的末尾,例如 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

    如果您没有权限编辑 librarypath.txt 文件,请参阅Locate Native Method Libraries

  4. 重新启动 MATLAB。

MATLAB 配置为使用 Git SSH 验证

为了防止因使用 HTTPS 与远程存储库交互而频繁出现登录提示,请添加新的公钥,转为使用 SSH 克隆存储库。下表提供有关如何根据您的操作系统配置 MATLAB 以使用 SSH 验证的说明。

操作系统说明
Windows
  1. 安装命令行 Git 客户端,并使其在系统范围内可用。要检查是否安装了 Git,请在 MATLAB 命令行窗口中输入命令 !git。如果该命令不返回任何内容,您需要安装命令行 Git。有关详细信息,请参阅安装命令行 Git 客户端

  2. 关闭所有 MATLAB 会话。

  3. 使用 ssh-keygen 命令生成 SSH 密钥。例如,在 Windows 命令提示符下,输入以下命令:

    ssh-keygen -t ed25519 -C "your_email@example.com"
    ssh-keygen 提示您确认保存密钥的位置,并询问密码短语。如果您不想在使用密钥时键入密码,请将密码短语留空。

    如果您在指定的文件夹中已有密钥,ssh-keygen 会询问您是否覆盖它们。

    在 R2021a 之前,指定 -m PEM 选项以生成 RSA 格式的 SSH 密钥。否则,ssh-keygen 会使用默认 OpenSSH 格式创建 SSH 密钥,这在 R2021a 之前的 MATLAB 版本中不受支持。例如,在 Windows 命令提示符下,输入以下命令:

    ssh-keygen -m PEM
    如果您在未指定 -m PEM 选项的情况下生成 SSH 密钥,您可以使用此命令将密钥转换为受支持的 RSA 格式,其中 ~/.ssh/id_rsa 是 SSH 密钥文件的名称。
    ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

  4. 将您的密钥放在 USERPROFILE/.sshHOME/.ssh 文件夹中。要验证 MATLAB 正在使用哪个 USERPROFILE 文件夹,请在 MATLAB 命令行窗口中输入:

    getenv('USERPROFILE')

    在 R2021a 之前,如果您使用 -m PEM 选项创建 SSH 密钥,则可以跳过步骤 5。

  5. 要确保 MATLAB 检测到 SSH 密钥,请在 MATLAB 命令行窗口中输入:

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

    如果您在生成 SSH 密钥时输入了密码短语,请将 MATLAB 配置为使用该密码短语,并在每个会话中只接收一次提示。为此,请使用 Pageant,或在 MATLAB 命令行窗口中输入:

    git.KeyHasPassphrase.PersonalValue = true;

    要使用多个密钥,请使用 Pageant 作为 SSH 代理。如果 Pageant 正在运行,则 MATLAB 在 Pageant 中查找密钥,然后在 USERPROFILE/.ssh 中查找。

  6. 将您的 GitHub® 或 GitLab® 帐户配置为使用 SSH 密钥。要完成这一配置,请转至 .ssh 文件夹,复制 .pub 文件的内容。然后,转至您的帐户设置,在 SSH Keys 部分中,将 .pub 文件的内容粘贴到 Add SSH key 字段中。

Linux®macOS
  1. 关闭所有 MATLAB 会话。

  2. 使用 ssh-keygen 命令生成 SSH 密钥。例如,在终端窗口中,输入以下命令:

    ssh-keygen -t ed25519 -C "your_email@example.com"
    ssh-keygen 提示您确认保存密钥的位置,并询问密码短语。如果您不想在使用密钥时键入密码,请将密码短语留空。

    如果您在指定的文件夹中已有密钥,ssh-keygen 会询问您是否覆盖它们。

    在 R2021a 之前,指定 -m PEM 选项以生成 RSA 格式的 SSH 密钥。否则,ssh-keygen 会使用默认 OpenSSH 格式创建 SSH 密钥,这在 R2021a 之前的 MATLAB 版本中不受支持。例如,在终端窗口中,输入以下命令:

    ssh-keygen -m PEM
    如果您在未指定 -m PEM 选项的情况下生成 SSH 密钥,您可以使用此命令将密钥转换为受支持的 RSA 格式,其中 ~/.ssh/id_rsa 是 SSH 密钥文件的名称。
    ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

  3. 将您的密钥放在 HOME/.ssh 文件夹中。要验证 MATLAB 正在使用哪个 HOME 文件夹,请在 MATLAB 命令行窗口中输入:

    getenv('HOME')

    在 R2021a 之前,如果您使用 -m PEM 选项创建 SSH 密钥,则可以跳过步骤 4。

  4. 要确保 MATLAB 检测到 SSH 密钥,请在 MATLAB 命令行窗口中输入:

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

    如果您在生成 SSH 密钥时输入了密码短语,请将 MATLAB 配置为使用该密码短语,并在每个会话中只接收一次提示。为此,请使用 SSH 代理,或在 MATLAB 命令行窗口中输入:

    git.KeyHasPassphrase.PersonalValue = true;

    要使用多个密钥,请使用 SSH 代理。如果 SSH 代理正在运行,MATLAB 会在代理中查找密钥,然后在 HOME/.ssh 中查找。

  5. 将您的 GitHub 或 GitLab 帐户配置为使用 SSH 密钥。要完成这一配置,请转至 .ssh 文件夹,复制 .pub 文件的内容。然后,转至您的帐户设置,在 SSH Keys 部分中,将 .pub 文件的内容粘贴到 Add SSH key 字段中。

安装 Git 凭据助手

自 R2021a 起

要将 MATLAB 配置为在使用 Git 时记住用户名和密码,请安装凭据助手。推荐使用适用于所有平台的凭据助手 Git Credential Manager Core。

例如,要在 Windows 系统上安装 Git Credential Manager Core,请按照 安装命令行 Git 客户端 中所述的说明下载并运行 Git for Windows 安装程序。在安装程序的 Choose a credential helper 部分中,选择 Git Credential Manager Core 作为凭据助手。

要删除 Git 存储库的已保存登录信息,请按照基于您的操作系统的说明进行操作。

操作系统说明
Windows

要重置存储库的 Git 凭据,请在凭据管理器的 Windows 凭据选项卡中,删除普通凭据下的条目。

Linux 和 macOS

要重置存储库的 Git 凭据,请输入:

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

Simulink 模型禁用压缩

您可以无压缩保存 Simulink 模型以减小 Git 存储库的大小。关闭压缩会导致磁盘上的 SLX 文件变大,但可以减小存储库的大小。

要对新 SLX 文件使用此设置,请在“SLX 压缩”设置为无的状态下使用模型模板创建模型。对于现有 SLX 文件,请设置压缩,然后保存模型。有关详细信息,请参阅设置 SLX 压缩级别 (Simulink)

注意

从 R2023b 开始,默认情况下 Simulink 在保存操作期间不应用压缩。

配置 Git 以使用 Git LFS

自 R2021a 起

如果您正在处理大文件,请通过安装命令行 Git 并设置 LFS,将 Git 配置为使用 Git 大文件存储 (LFS)。

例如,要在 Windows 系统上使用 Git LFS,请按照 安装命令行 Git 客户端 中所述的说明下载并运行 Git for Windows 安装程序。在 Git for Windows 安装程序的 Select Components 部分中,选择 Git LFS (Large File Support)Associate .sh files to be run with Bash 选项。

MATLAB 不支持 Git LFS 锁定。此外,MATLAB 不支持 LFS 命令,如 git lfs track。请改用 !git lfs track

Git 配置为使用 MATLAB 进行差异分析和合并

您可以将 Git 配置为使用 MATLAB 比较工具进行差异分析和合并。MATLAB 比较工具提供用于合并 MathWorks® 文件(例如 live scripts、MAT、SLX 或 MDL 文件)的工具。您可以将自动合并工具与 Git 结合使用,以自动将包含不同子系统中更改的分支合并在同一 SLX 文件中。

有关如何配置 Git 以使用 MATLAB 比较工具的详细信息,请参阅自定义外部源代码管理以使用 MATLAB 执行差异分析和合并

安装命令行 Git 客户端

要使用 Git LFS 或凭据助手,您必须安装命令行 Git 客户端,并使其在系统范围内可用。在 R2020b 之前,必须安装命令行 Git 客户端,才能使用 Git 合并 MATLAB 中的分支。

要检查是否安装了 Git,请在 MATLAB 命令行窗口中输入命令 !git。如果该命令不返回任何内容,您需要安装命令行 Git。下表提供如何根据您的操作系统安装命令行 Git 的说明。

操作系统说明
Windows
  1. https://gitforwindows.org/ 下载并运行安装程序。

  2. Adjusting your PATH environment 部分,选择安装选项 Git from the command line and also from 3rd-party software。此选项将 Git 添加到 PATH 变量中,并使其在系统范围内可用,以便 MATLAB 可以与 Git 通信。

  3. 在配置换行符转换部分中,选择 Checkout Windows-style, commit Unix-style line endings 选项。换行符格式在计算机和用户之间是不强制一致的,但您可以在每个存储库的 .gitattributes 文件中支持一致的文本文件换行符。

  4. 重新启动系统以使更改生效。

Linux

在大多数发行版中都可以使用 Git。安装适用于您的发行版的 Git。例如,在 Debian® 上,通过输入以下命令即可安装 Git:

sudo apt-get install git
macOS在 Mavericks (10.9) 或更高版本上,从终端窗口运行 Git。如果您尚未安装 Git,系统将提示您安装 Xcode 命令行工具。有关详细信息,请参阅https://git-scm.com/doc

另请参阅

函数

相关主题