前言
这大概是全中文互联网 介绍最详细的 MATLAB/Simulink版本管理指南,里面具体讲解了每个名词的用法和含义,适用于新手入门,本身git也并非难事,但gitbash操作需要记忆操作指令,肯定不如有一个交互界面好用,因此特意写了这么一个博客和文本。
声明
内容为原创,未经允许禁止商用,复制、传播及其他可能侵害作者权益的行为,违者必究。
MATLAB/Simulink版本管理指南(使用MATLAB版本:2020b)
目录
目录
3.2 推送到 远端Repository(remote repository)
3.3 基于当前的分支/版本 创建一个新的分支(演示),并使用新分支“提交”
3.5 基于历史的某个版本创建新的分支,删除其他分支,并推送Push到远程端
3.6 取回:从远端存储库(Remote Repository)<演示>
MATLAB/Simulink版本管理指南
使用MATLAB版本:2020b
Ricky Zhang-13712548008
940784195@qq.com
2024-5-7
1. 名词解释
1.1 沙盒(Sandbox)
一个用于代码测试和验证的临时空间(临时workspace),在这个空间的 代码更改不会影响到 存储库中的代码。沙盒提供了更强的隔离性,允许开发者在不影响主存储库的情况下进行工作
1.2 存储库(Remote Repository)
存储库用于长期存储项目的版本历史,Git存储库是版本控制系统中用来保存项目文件和历史记录的地方。它是Git版本控制的核心,包含了项目的提交历史、分支、标签等所有信息。存储库可以是本地的,也可以是远程的(如GitHub上的仓库)
1.3 提交(Commit) 
• 含义:提交是将你的更改(修改过的文件、新增的文件、删除的文件等)保存到本地仓库的一个新版本中。这个操作并不会立即将更改推送到远程仓库,而是先保存在本地,你可以在本地进行多次提交,然后再一次性推送到远程仓库。
• 用途:当你完成一部分工作,想要保存当前的状态,但不立即与团队成员共享时,可以使用提交操作。
1.4 提取(Fetch) 
• 含义:提取是从远程仓库获取最新的数据,但不会自动合并到你的本地分支中。这个操作可以让你查看远程分支的状态,或者在合并之前了解远程分支的更改内容。
• 用途:当你想要获取远程仓库的最新更改,但还不想立即合并到你的工作分支中时,可以使用提取操作。这通常用于在合并之前检查更改,或者在合并之前更新你的本地仓库。
• 使用提取可获取更改并手动合并。使用取回则可提取最新更改并将它们合并到当前分支中
1.5 推送(push) 
• 含义:推送是将你的本地分支的更改发送到远程仓库。这个操作会将你的提交记录、分支信息等推送到远程仓库,使得其他协作者能够看到你的更改。
• 用途:当你完成了一系列的本地更改,并且想要将这些更改共享给团队成员,或者备份到远程仓库时,可以使用推送操作。
1.6 取回(Pull) 
• 含义:取回是将远程仓库的更改合并到你的本地分支中。这个操作实际上是执行了提取(Fetch)和合并(Merge)两个步骤,先从远程仓库获取最新的数据,然后将这些数据合并到你的本地分支中。
• 用途:当你想要将远程仓库的更改更新到你的本地分支中,或者在开始工作之前确保你的本地分支是最新的,可以使用取回操作。
1.7 分支Head
• 每个分支都有一个HEAD,它指向该分支的最新提交。当你在分支上进行提交时,HEAD指针会自动向前移动到新的提交。
1.8 HEAD指针
• 在Git的内部,HEAD是一个指向当前分支HEAD的引用。当你切换分支时,HEAD引用也会随之移动到新分支的HEAD。
1.9 还原到Head
• 撤销更改:将工作目录中的文件恢复到最后一次提交(即HEAD指向的状态)的样子。如果你对文件进行了修改,但还没有进行提交,使用“还原到Head”可以将这些文件恢复到最后一次提交的状态
1.10 标签tag
• “标签”(Tag)是一个引用,用来标记特定的提交(commit)。标签可以看作是一个轻量级的分支,但它不会随时间改变,它总是指向创建它时所标记的特定提交。
• 版本发布:标签最常用的场景是标记软件的发布版本。例如,你可以为每个正式的软件发布创建一个标签,如v1.0、v2.0等
1.11 说明图

2. 从0开始新建一个工程(基于Git)
2.1 新建一个 基于Git的工程
新建->工程->从Git
点击新建一个“文件存储库”->重新命名
点击“确定”后,可以看见 电脑相应文件夹中已经生成关于git文件
出现设置工程第一步,“添加并包含子文件夹”,可直接点击“下一步”,如需在此步骤设置,请保留当前窗口,参考步骤1.11
出现设置工程第二步,“工程的启动文件”,可直接点击“下一步”,如需在此步骤设置,请保留当前窗口,参考步骤1.13
2.2 添加自有的文件到SandBox(沙盒存储位置)
(创建完工程后)将文件复制到Sandbox中(工程路径必须在工程根文件夹中)
进入“工程路径”->点击“添加并包含子文件夹”
2.3 将需要版本管理的文件 添加进工程
点击“所有”->选中“需要添加的文件”->选择将“文件夹添加到工程(包含子文件)”->观察右边的Git一栏变为 蓝色
2.4 (可选)配置启动的环境和参数
启动关闭->添加->选择 文件(如IPS模型的data导入文件)
3. 分支的创建、删除、切换与管理
3.1 提交 文件到 Sandbox,并查看
点击“提交”->备注好 注释,点击提交->分支
查看在 Sandbox中已经“提交”过的文件
3.2 推送到 远端Repository(remote repository)
该远端存储库未知 即在工程建立时选择的 存储库文件夹位置
点击 ,可将在Sandbox已提交的分支上传至远端,在分支中 可查看
3.3 基于当前的分支/版本 创建一个新的分支(演示),并使用新分支“提交”
当前分支为:master,在 中,名称一栏 填入“名称”,点击“创建”
注:源 疑似哈希值,可能是一种加密标识,暂无需理会
可以观察到 分支中“A平台”已出现,点击“切换”到 新分支(当前因新分支刚出现,与“源”一致,故在分支浏览器中显示为 重叠)
在新分支中创建文件,并提交至Sandbox
创建一个空脚本untitled.m ,并“提交”,分支浏览器即可看见信息
3.4 合并其他分支 到当前分支
适用情况:某项功能Feature 原先在A平台分支上,主线和带Feature的分支已各自迭代了几个版本,现需Feature并入到 主线中。合并后A平台分支也可以继续单独迭代
当前分支:master
合并的其他分支:A平台
点击 “合并”
结果:合并后 master分支会拥有A平台的功能Feature,此时A平台分支仍然继续存在。
3.5 基于历史的某个版本创建新的分支,删除其他分支,并推送Push到远程端
选择 分支->选中分支 过往的某个历史版本->在下方创建 新分支->请参考 基于当前的分支/版本 创建一个新的分支(演示)
删除分支:
分支浏览器->右侧下拉-删除分支
推送到远程端->点击“推送Push”->可以在分支浏览器中 观察到 远端存储库
3.6 取回:从远端存储库(Remote Repository)<演示>
演示过程:Sandbox是一个更新的版本,如有两个空白文件,远端是更旧的版本
点击“取回”->
其他未分析资料(包括如何删除远程分支)
Git repository object - MATLAB - MathWorks 中国
Discard changes in Git repository - MATLAB discardChanges - MathWorks 中国
Delete local Git branch - MATLAB deleteBranch - MathWorks 中国