Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

设置 Git 源代码管理

注意

从 R2020b 开始,您不需要安装命令行 Git™,就可以将 Git 与 MATLAB® 结合使用并充分利用其功能。现在,您可以使用内置的 Git 集成来合并分支。

要为 R2020b 之前的版本设置 Git,请参阅 https://www.mathworks.com/help/releases/R2020a/matlab/matlab_prog/set-up-git-source-control.html

Windows 上配置 MATLAB

一些操作(如提交、合并和接收推送的提交)使用 Git Hooks。要在安装了 MATLAB 的 Windows® 上使用 Git Hooks,请安装 Cygwin 并将其添加到 MATLAB 库路径:

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

  2. 在 MATLAB 命令行窗口中,键入 edit(fullfile(matlabroot,"toolbox","local","librarypath.txt"))

    将 Cygwin bin 文件夹位置添加到 librarypath.txt 的末尾,例如 C:\cygwin64\bin

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

  3. 重新启动 MATLAB 使更改生效。

您可以使用 HTTPS 或 SSH 克隆远程存储库,如 GitHub® 和 GitLab™。为了防止在使用 HTTPS 与远程存储库交互时频繁出现登录提示,请配置 Git 凭据管理器以记住凭据,或添加新的公钥,并使用 SSH 克隆存储库。有关详细信息,请参阅对 MATLAB 使用 SSH 身份验证

对于 Git 源代码管理下的新工程,MATLAB 会自动注册您的二进制文件,以防止在合并时损坏。对于现有工程,请在使用 Git 合并分支之前注册二进制文件。有关详细信息,请参阅在 Git 中注册二进制文件

如果您处理的是路径很长的文件,请在 MATLAB 中运行此命令:

!git config --global core.longpaths true

MATLAB 使用 SSH 身份验证

为了防止因使用 HTTPS 与远程存储库交互而频繁出现登录提示,请添加新的公钥,转为使用 SSH 克隆存储库。

要在 MATLAB 内使用 SSH 身份验证,请执行下列步骤:

  1. 使用 ssh-keygen 生成有效的 SSH 密钥。在命令提示符下,输入:

    ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (C:\Users\username/.ssh/id_rsa):
    Created directory 'C:\Users\username/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in C:\Users\username/.ssh/id_rsa.
    Your public key has been saved in C:\Users\username/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:/Nc9/tnZ7Dmh77+iJMxmPVrlPqaFd6J1j1YRXEk3Tgs company\username@us-username
    ssh-keygen 确认您要保存密钥的位置(例如 .ssh/id_rsa),并要求输入密码。如果您不想在使用密钥时键入密码,请将密码留空。如果您在指定的文件夹中已有密钥,ssh-keygen 会询问您是否覆盖它们。

    注意

    不能在 MATLAB 中直接生成 SSH 密钥。请使用命令行 Git 安装提供的 ssh-keygen 生成 SSH 密钥。

  2. 在 Linux 和 Mac 上,将您的密钥放在 HOME/.ssh 文件夹中。要验证 MATLAB Git 集成使用哪个 HOME 目录,请在 MATLAB 命令行窗口中输入:

    getenv('HOME')

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

    在 Windows 上,将您的密钥放在 USERPROFILE/.sshHOME/.ssh 文件夹中。要验证 MATLAB Git 集成使用哪个 USERPROFILE 目录,请在 MATLAB 命令行窗口中输入:

    getenv('USERPROFILE')

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

  3. 将您的 GitHub 或 GitLab 帐户配置为使用 SSH 密钥:

    • .pub 文件的内容复制到 .ssh 文件夹中。

    • 将内容粘贴到您的帐户设置的“SSH 密钥”部分的“添加 SSH 密钥”字段中。

Git 中注册二进制文件

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

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

通过在您的 .gitattributes 文件中注册二进制文件,可以防止 Git 损坏您的文件。

  • 对于新工程和从另一个源代码管理系统切换过来的工程,MATLAB 会自动创建一个 .gitattributes 文件,并用要注册的二进制文件列表填充该文件。这会指定 Git 不应对已注册的文件尝试自动换行、差异分析和合并内容。

  • 对于现有工程,创建一个 .gitattributes 文件,并用要注册的二进制文件列表填充它。

    1. 在命令行窗口中键入:

      edit .gitattributes

    2. 在属性文件中为您需要的每个文件类型添加一行。例如,*.mlapp binary

      提示

      您可以复制包含要注册的常见二进制文件列表的 .gitattributes 文件。

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

    3. 重新启动 MATLAB 后您就能开始使用 Git 客户端。

提示

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

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

配置 Git 凭据助手

您可以将 Git 配置为使用凭据助手来记住用户名和密码。对于所有平台,推荐使用 Git 凭据管理器核心作为凭据助手。

要记住凭据,必须安装 Git。在 Windows 上,安装 Git for Windows。

相关主题