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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/130262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PPT制作指南

诸神缄默不语-个人CSDN博文目录 文章目录 1. SOP2. PPT的目标3. PPT素材4. 内容框架5. 设计细节本文撰写过程中使用到的参考资料 1. SOP 分析目标→收集素材→明确框架→视觉呈现 2. PPT的目标 演讲型PPT:字少图多 阅读型PPT:需要文字解释 分析维度&…

【深度学习基础】Pytorch框架CV开发(2)实战篇

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

ubuntu20.04下apache启用php7.4-fpm

默认的apache不解析php文件: 直接安装提示依赖有问题: libapache2-mod-php7.4 : Depends: php7.4-common ( 7.4.3-4ubuntu2.19) but 1:7.4.33-8ubuntu20.04.1deb.sury.org1 is to be installed rootfv-az1492-145:/tmp# sudo apt install libapache2-…

springboot常见网络相关错误及原因解析

在基于spring-boot开发过程尤其是上线后,经常出现网络相关的错误,令人难以琢磨和下手,所以就spring-boot使用过程中可能碰到的网络相关问题进行分析,结合网络转包、日志报错和前端输出,针对网络连接超时、连接被拒绝、…

默认路由配置

默认路由: 在末节路由器上使用。(末节路由器是前往其他网络只有一条路可以走的路由器) 默认路由被称为最后的关卡,也就是静态路由不可用并且动态路由也不可用,最后就会选择默认路由。有时在末节路由器上写静态路由时…

十种常见典型算法

什么是算法? 简而言之,任何定义明确的计算步骤都可称为算法,接受一个或一组值为输入,输出一个或一组值。(来源:homas H. Cormen, Chales E. Leiserson 《算法导论第3版》) 可以这样理…

自动驾驶算法(五):Informed RRT*算法讲解与代码实现(基于采样的路径规划) 与比较

目录 1 RRT*与Informed RRT* 2 Informed RRT*代码解析 3 完整代码 4 算法比较 1 RRT*与Informed RRT* 上篇博客我们介绍了RRT*算法:我们在找到一个路径以后我们还会反复的搜索。 Informed RRT*算法提出的动机(motivation)是能否增加渐近最优的速度呢?…

【数据结构】树家族

目录 树的相关术语树家族二叉树霍夫曼树二叉查找树 BST平衡二叉树 AVL红黑树伸展树替罪羊树 B树B树B* 树 当谈到数据结构中的树时,我们通常指的是一种分层的数据结构,它由节点(nodes)组成,这些节点之间以边&#xff08…

基于级联延迟信号消除的锁相环(CDSC_PLL)技术MATLAB仿真

微❤关注“电气仔推送”获得资料(专享优惠) 基于级联型延迟信号消除(CDSC)的锁相环技术(CDSC-PLL),该锁相环克服了传统dq 锁相环在电网电压畸变或不对称时存在较大稳态误差的缺点。CDSC-PLL是在…

java的集合类中哪些可以添加不同类型数据,哪些不可以?

在Java的集合类中,有些可以添加不同类型的数据,而有些则要求元素类型必须一致。以下是一些常见的Java集合类及其对元素类型的要求: 1、ArrayList ArrayList可以添加不同类型的数据,因为它使用了泛型,可以存储任何类型…

Ansible中的任务执行控制

循环 简单循环 {{item}} 迭代变量名称 loop: - value1 - value2 - ... //赋值列表{{item}} //迭代变量名称循环散列或字典列表 - name: create filehosts: host1tasks:- name: file moudleservice:name: "{{ item.name }}"state: "{{…

uniapp跳转方式

UniApp 是一个基于 Vue.js 的跨平台开发框架,可以同时构建 iOS、Android、H5 和小程序等多个平台的应用。在 UniApp 中,我们可以使用以下几种方式进行页面之间的跳转: 使用 uni.navigateTo 方法:该方法可以在当前页面打开新的页面…

FRI及相关SNARKs的Fiat-Shamir安全

1. 引言 本文主要参考: Alexander R. Block 2023年论文 Fiat-Shamir Security of FRI and Related SNARKsAlbert Garreta 2023年9月在ZK Summit 10上分享 ZK10: Fiat-Shamir security of FRI and related SNARKs - Albert Garreta (Nethermind) 评估参数用的Sage…

Java 用户上传如何将图片转为webp格式图片

下载 webp-imageio jar包 GitHub - nintha/webp-imageio-core: Java Image I/O reader and writer for the Google WebP image format without system native libs 这里可以根据官方提示手动编译,也可以下载作者发布好的jar包。github提供了多个版本,我…

Git客户端软件 Tower mac中文版特点说明

Tower mac是一款Mac OS X系统上的Git客户端软件,它提供了丰富的功能和工具,帮助用户更加方便地管理和使用Git版本控制系统。 Tower mac软件特点 1. 界面友好:Tower的界面友好,使用户能够轻松地掌握软件的使用方法。 2. 多种Git操…

edge浏览器的隐藏功能

1. edge://version 查看版本信息 2. edge://flags 特性界面 具体到某一特性:edge://flags/#overlay-scrollbars 3. edge://settings设置界面 详情可参考chrome: 4. edge://extensions 扩展程序页面 5. edge://net-internals 网络事件信息 6. edge://component…

excel制作透视表

场景描述: 有一张excel表,存在多条记录,现在需要把相同名称的商品的数量求和,放在一起展示 操作步骤: 删除最后一行数据 选中不显示分类汇总 以表格形式展示

STM32-HAL库08-TIM的输出比较模式(输出PWM的另一种方式)

STM32-HAL库08-TIM的输出比较模式(输出PWM的另一种方式) 一、所用材料: STM32F103C6T6最小系统板 STM32CUBEMX(HAL库软件) MDK5 示波器或者逻辑分析仪 二、所学内容: 通过定时器TIM的输出比较模式得到预…

第21期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练 Transformer(GPT)、人工智能生成内容(AIGC)以及大型语言模型(LLM)等安全领域应用的知识。在这里,您可以…

【计算机网络实验/wireshark】tcp建立和释放

wireshark开始捕获后,浏览器打开xg.swjtu.edu.cn,网页传输完成后,关闭浏览器,然后停止报文捕获。 若捕获不到dns报文,先运行ipconfig/flushdns命令清空dns缓存 DNS报文 设置了筛选条件:dns 查询报文目的…