MATLAB中设置 Git 源代码管理

目录

在 Git 中注册二进制文件

在 Windows 上为 Git 配置 MATLAB

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

安装 Cygwin(可选)

将 MATLAB 配置为使用 Git SSH 验证

安装 Git 凭据助手

对 Simulink 模型禁用压缩

配置 Git 以使用 Git LFS

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

安装命令行 Git 客户端


        可以使用 MATLAB® 中的 Git™ 源代码管理来管理文件并与其他人协作。使用 Git,可以跟踪对文件的更改,并在以后重新调用特定版本。

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

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

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

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

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

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

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

在 R2020b 之前,必须安装命令行 Git 客户端,才能使用 Git 合并 MATLAB 中的分支。

在 Git 中注册二进制文件

        如果使用第三方源代码管理工具,则必须将 .mlx、.mat、.fig、.mlapp、.mdl、.slx、.mdlp、.slxp、.sldd 和 .p 等 MATLAB 和 Simulink 文件扩展名注册为二进制格式。还要注册 MEX 文件的扩展名:

        例如 .mexa64、.mexmaci64 和 .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. ​从 Cygwin 下载并运行安装程序。

  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。

  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/.ssh 或 HOME/.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 凭据助手

        要将 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 文件,请设置压缩,然后保存模型。

配置 Git 以使用 Git LFS

        如果正在处理大文件,请通过安装命令行 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 LFS 使用 Git Hooks。确保您已安装了 Cygwin。

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

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

安装命令行 Git 客户端

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

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

操作系统说明
Windows
  1. ​从 Git for Windows 下载并运行安装程序。

  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 命令行工具。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值