设置 Git 源代码管理
您可以使用 MATLAB® 中的 Git™ 源代码管理来管理您的文件并与其他人协作。使用 Git,您可以跟踪对文件的更改,并在以后重新调用特定版本。有关详细信息,请参阅Clone Git Repository和Add a Project to Source Control。
在使用 Git 之前,请按照以下步骤为 MATLAB 进行设置:
用 Git 注册您的二进制文件以避免文件损坏。(所有系统都需要)
在 Windows® 系统上为 Git 启用长路径支持。(推荐用于 Windows 系统)
配置 MATLAB 以签名提交。(可选)
将 MATLAB 配置为使用 Git SSH 身份验证或安装 Git 凭据助手,以防止频繁的登录提示。(可选)
如果您正在处理大型文件,请将 Git 配置为使用 Git LFS。(可选)
将外部 Git 工具配置为使用 MATLAB 进行差异分析和合并。(可选)
从 R2024a 开始,MATLAB Git 集成运行 Git Hook,无需额外设置。支持的钩子有 pre-commit
、commit-msg
、post-commit
、prepare-commit-msg
、pre-push
、pre-merge-commit
、post-checkout
和 post-merge
。
在 R2024a 之前,要将一些 Git Hook 与 MATLAB 结合使用,请安装 Cygwin™ 并将其添加到 MATLAB 库路径中。有关说明,请参阅安装 Cygwin(在 R2024a 之前)。
在 R2020b 之前,必须安装命令行 Git 客户端,才能使用 Git 合并 MATLAB 中的分支。有关详细信息,请参阅安装命令行 Git 客户端。
在 Git 中注册二进制文件
如果您使用第三方源代码管理工具,则必须将 .mlx
、.mat
、.fig
、.mlapp
、.mdl
、.slx
、.mdlp
、.slxp
、.sldd
和 .p
等 MATLAB 和 Simulink® 文件扩展名注册为二进制格式。还要注册 MEX 文件的扩展名,例如 .mexa64
、.mexmaci64
、.mexmaca64
和 .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
文件并填充其内容。
将
* text=auto
添加到.gitattributes
文件的顶部。对于每个二进制文件扩展名
ext
,添加*.
。例如,ext
binary*.mlapp binary
。
启用对长路径的支持
要在 Windows 系统上启用对长路径的支持,请在 MATLAB 中运行以下命令:
!git config --global core.longpaths true
启用签名提交
要对提交签名,请通过在 MATLAB 中的运行以下命令来配置 Git。
启用自动签名提交。
!git config --global commit.gpgsign true
设置您的签名密钥和密钥格式。支持的密钥格式为
X.509
和OpenPGP
(默认值)。在此示例中,密钥 ID 为3AB5C344325645B2
,密钥格式为X.509
。!git config --global user.signingkey 3AB5C344325645B2 !git config --global gpg.format x509
指定用于签名提交的实用工具。在此示例中,此命令将 Git 配置为使用
smimesign
作为签名实用工具。!git config --global gpg.x509.program smimesign
要改用
OpenPGP
,请运行!git config --global gpg.openpgp.program gpg
。
将 MATLAB 配置为使用 Git SSH 身份验证
为了防止因使用 HTTPS 与远程存储库交互而频繁出现登录提示,请添加新的公钥,转为使用 SSH 克隆存储库。下表提供有关如何根据您的操作系统配置 MATLAB 以使用 SSH 身份验证的说明。
操作系统 | 说明 |
---|---|
Windows |
|
Linux® 和 macOS |
|
安装 Git 凭据助手
自 R2021a 起
要将 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 模型禁用压缩(在 R2023b 之前)
您可以无压缩保存 Simulink 模型以减小 Git 存储库的大小。关闭压缩会导致磁盘上的 SLX 文件变大,但可以减小存储库的大小。
要对新 SLX 文件使用此设置,请在“SLX 压缩”设置为无的状态下使用模型模板创建模型。对于现有 SLX 文件,请设置压缩,然后保存模型。有关详细信息,请参阅 设置 SLX 压缩级别。
注意
从 R2023b 开始,默认情况下 Simulink 在保存操作期间不应用压缩。
配置 Git 以使用 Git LFS
自 R2021a 起
如果您正在处理大文件,请通过安装命令行 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 工具以使用 MATLAB 进行差异分析和合并
您可以将 Git 配置为使用 MATLAB 比较工具进行差异分析和合并。MATLAB 比较工具提供用于合并 MathWorks® 文件(例如 live scripts、MAT、SLX 或 MDL 文件)的工具。您可以将自动合并工具与 Git 结合使用,以自动将包含不同子系统中更改的分支合并在同一 SLX 文件中。
有关如何配置外部 Git 工具以使用 MATLAB 比较工具的详细信息,请参阅Customize External Source Control to Use MATLAB for Diff and Merge。
其他设置
安装命令行 Git 客户端
要使用 Git LFS 或凭据助手,您必须安装命令行 Git 客户端,并使其在系统范围内可用。在 R2020b 之前,必须安装命令行 Git 客户端,才能使用 Git 合并 MATLAB 中的分支。
要检查是否安装了 Git,请在 MATLAB 命令行窗口中输入命令 !git
。如果该命令不返回任何内容,您需要安装命令行 Git。下表提供如何根据您的操作系统安装命令行 Git 的说明。
操作系统 | 说明 |
---|---|
Windows |
|
Linux | 在大多数发行版中都可以使用 Git。安装适用于您的发行版的 Git。例如,在 Debian® 上,通过输入以下命令即可安装 Git: sudo apt-get install git |
macOS | 在 Mavericks (10.9) 或更高版本上,从终端窗口运行 Git。如果您尚未安装 Git,系统将提示您安装 Xcode 命令行工具。有关详细信息,请参阅 https://git-scm.com/doc。 |
安装 Cygwin(在 R2024a 之前)
在 2024a 之前,要将某些 Git Hook 与 MATLAB 配合使用,您必须安装 Cygwin。
按照以下步骤在 Windows 系统上安装 Cygwin,并将其添加到 MATLAB 库路径和系统路径中。
从 https://www.cygwin.com/ 下载并运行安装程序。
在 MATLAB 中,打开
librarypath.txt
。edit(fullfile(matlabroot,"toolbox","local","librarypath.txt"))
将 Cygwin 文件夹位置添加到
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。将 Cygwin bin 文件夹添加到系统路径中。有关详细信息,请参阅https://www.mathworks.com/matlabcentral/answers/94933-how-do-i-edit-my-system-path-in-windows。
重新启动 MATLAB。