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 文件,请创建一个副本并将其保存到您的 MATLAB 启动文件夹。

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

您可以使用 HTTPS 或 SSH 克隆远程存储库,如 GitHub 和 GitLab™。为了防止在使用 HTTPS 与远程存储库交互时频繁出现登录提示,请添加新的公钥,并使用 SSH 克隆存储库。为了避免使用 SSH 进行连接时出现问题,请设置 HOME 环境变量,并使用它来存储您的 SSH 密钥。有关详细信息,请参阅对 MATLAB 使用 SSH 身份验证

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

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

!git config --global core.longpaths true

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

MATLAB Git 集成使用用户 HOME 环境变量来定位包含 SSH 密钥的 .ssh 文件夹。如果未设置 HOME 环境变量或 SSH 密钥存储不正确,您将在使用 SSH 连接到远程存储库(如 GitHub 和 GitLab)时遇到问题。

要在 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. 将您的密钥放在 HOME/.ssh 文件夹中。要验证 MATLAB Git 集成使用哪个 HOME 目录,请在 MATLAB 命令行窗口中输入:

    getenv('HOME')
  3. 如果 getenv('HOME') 未返回任何内容,您需要设置您的 HOME 环境变量。

    要在 Windows 中设置 HOME 环境变量,请执行以下操作:

    • 在“开始搜索”框中,搜索并选择“高级系统设置”。

    • 高级选项卡上,点击环境变量

    • 在“用户变量”部分中,点击新建。创建 HOME 环境变量并指定其值。

    在 Linux®Mac 上始终会设置 HOME 环境变量。

  4. 将您的 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 压缩级别

相关主题