Main Content

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

设置 Git 源代码管理

要使用随工程提供的 Git™ 版本,当您向源代码管理中添加工程或从中检索工程时,请从 Source control tool 列表中选择 “Git”。

  • 如果您将某个现有工程添加到 Git 源代码管理中,将在该沙盒中创建一个本地 Git 存储库。您可以稍后指定远程存储库。请参阅Add a Project to Source Control

  • 要通过克隆远程 Git 存储库来创建工程,请在 MATLAB® 的“主页”选项卡上,选择新建 > 工程 > 从 Git。在您指定要克隆的远程存储库后,将创建一个本地存储库。您还可以在远程存储库中取回、提取和推送更改。请参阅Clone Git Repository

    要将 Git 服务器用于远程存储库,您可以使用 Git 服务器托管解决方案或设置您自己的 Apache™ Git 服务器。如果您无法设置服务器且必须通过使用 file:/// 协议的文件系统来使用远程存储库,请确保它是不含任何签出工作副本的裸存储库。

  • 要在 GitHub® 上公布您的工程供大家使用,请参阅在 GitHub 上共享工程。共享将为打开的工程添加 Git 源代码管理,而工程的远程存储库为 GitHub。

Windows 上配置 MATLAB

注意

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

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

一些操作(如提交、合并和接收推送的提交)使用 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

为了防止在使用 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 中注册模型文件

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

  • 对于新工程和从另一个源代码管理系统切换过来的工程,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 Compression 设置为 none 的状态下使用模型模板创建模型。对于现有 SLX 文件,请设置压缩,然后保存模型。有关详细信息,请参阅 设置 SLX 压缩级别

配置 Git 凭据助手

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

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

相关主题