建立Git源控制

Git项目中的源代码控制

要使用随项目提供的Git™版本,在将项目添加到源代码控制或从源代码控制检索时,请选择Git源码控制工具列表。

  • 如果将现有项目添加到Git源代码控制中,则在该沙箱中创建一个本地Git存储库。稍后可以指定远程存储库。看到将项目添加到源代码控制中

  • 如果你想克隆一个远程Git仓库来创建一个项目,选择>项目>从Git在MATLAB®主页选项卡。您指定的远程仓库,从检索后,将创建一个本地资源库。您也可以拉,取出,并推往返于远程仓库的变化。看到克隆Git存储库或签出SVN存储库

    注意

    你可以不为空文件夹添加到Git的源代码控制。用检查项目代替。看到用Git拉、推和取文件

    要为远程存储库使用Git服务器,可以设置自己的Apache™Git服务器或使用Git服务器托管解决方案。如果无法设置服务器,必须通过文件系统使用远程存储库,则使用file:///协议,确保它是一个纯仓库没有签出的工作副本。

  • 为了使您的项目公开可用GitHub上®在GitHub上分享项目。分享增加的Git源控制,以开放的项目,该项目的远程仓库是GitHub上。

安装命令行Git客户端和配置MATLAB安装

如果希望使用Git在MATLAB中合并分支,则必须安装命令行Git客户机,并使其在系统范围内可用。

检查是否使用该命令安装了Git!混帐在MATLAB。如果它不返回任何内容,则需要安装命令行Git。

操作系统 指令
在Windows®

  1. 下载安装程式https://gitforwindows.org/并运行它。

    • 在关于调整你的路径,选择install选项Git从命令行和第三方软件。此选项将Git的你路径变量,并使其在系统范围内可用,以便MATLAB能够与Git通信。

    • 在选择SSH可执行文件一节中,选择选项使用OpenSSH。MATLAB只支持Ope万博1manbetxnSSH键。

    • 在配置上的行结束转换的一节,选择的选项结帐,不被提交原样避免转换文件中的任何行结束符。

  2. 一些操作,如提交,合并和接收被推送的提交,使用Git的挂钩。要使用MATLAB在Windows上使用Git的钩,安装Cygwin,并把它添加到MATLAB库路径:

    • 下载安装程式https://www.cygwin.com/并运行它。

    • 在MATLAB命令窗口中输入编辑(fullfile (matlabroot,“工具箱”,“当地”,“librarypath.txt”))

      将Cygwin bin文件夹位置添加到末尾librarypath.txt, 例如C: \ cygwin64 \ bin

    • 重新启动MATLAB的更改生效。

  3. 重新启动计算机使更改生效。

在Linux上®

Git可用于大多数发行版。为您的发行版安装Git。例如,在Debian上®,输入:安装Git:

命令和apt-get安装的git

Mac

在小牛(10.9)或以上,运行git从终端。如果您还没有安装Git,它将提示您安装Xcode命令行工具。有关更多选项,请参见https://git-scm.com/doc

您可以使用HTTPS或SSH克隆像GitHub和GitLab™这样的远程存储库。为了防止在使用HTTPS与远程存储库交互时出现频繁的登录提示,请添加一个新的公钥并使用SSH克隆存储库。要避免使用SSH连接出现问题,请设置首页环境变量,并用它来存储您的SSH密钥。欲了解更多信息,请参阅使用MATLAB进行SSH身份验证

为了避免损坏二进制文件,使用Git合并分支之前登记的二进制文件。欲了解更多信息,请参阅用Git注册模型文件

如果你正在处理长路径文件,运行这个命令在MATLAB:

!混帐配置--global core.longpaths真

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

使用MATLAB Git集成用户首页环境变量定位. ssh包含SSH密钥的文件夹。如果首页环境变量没有设置或SSH密钥存放不当,你会遇到使用SSH喜欢的GitHub和GitLab远程仓库的连接问题。

要使用SSH验证MATLAB里面:

  1. ssh - keygen生成有效的SSH密钥。在命令提示符中,输入:

    ssh - keygen
    生成公共/私有密钥对。输入文件中要保存键(C:\ Users \用户名/的.ssh / id_rsa):创建的目录 'C:\ Users \用户名/的.ssh'。输入密码(空为没有密码):再次输入相同的密码:您的身份已被保存在C:\ Users \用户名/的.ssh / id_rsa。你的公钥已经保存在C:\ Users \用户名/的.ssh / id_rsa.pub。关键指纹:SHA256:/ NC9 / tnZ7Dmh77 + iJMxmPVrlPqaFd6J1j1YRXEk3Tgs公司\用户名@我们户名
    ssh - keygen确认要将密钥保存在何处(. ssh / id_rsa),并请求一个密码短语。如果在使用密钥时不想键入密码,请将密码短语保留为空。如果在指定的文件夹中已经有键,ssh - keygen询问你是否想要覆盖它们。

  2. 请将您的钥匙家庭/ . ssh文件夹中。来验证它首页MATLAB Git集成正在使用的目录,在MATLAB命令窗口中,输入:

    采用“回家”)
  3. 如果采用“回家”)不返回任何东西,您需要设置首页环境变量。

    设置首页Windows环境变量:

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

    • 先进的选项卡,单击环境变量

    • 在用户变量部分中,单击。创建首页环境变量,并指定其值。

    首页在Linux和上总是设置环境变量Mac

  4. 配置您的GitHub或GitLab帐户使用SSH密钥:

    • 复制的内容的.pub文件中的. ssh文件夹中。

    • 在您的帐户设置SSH密钥部分粘贴在添加SSH密钥字段的内容。

注册模型文件与Git

安装命令行Git客户机之后,就可以防止Git破坏您的Simulink了万博1manbetx®通过插入冲突标记来建模。要做到这一点,编辑你的.gitattributes文件注册模型文件为二进制。有关详细信息,请参阅:

  1. 如果你还没有.gitattributes在您的项目根目录下,通过在MATLAB中输入:

    编辑.gitattributes

  2. 这些行添加到.gitattributes文件:

    *。mlx -crlf -diff -merge *。mat -crlf -diff -merge *。图-crlf -diff -merge *。mdl -crlf -diff -merge *。slx -crlf -diff -merge *。mlapp -crlf -diff -merge *。p -crlf -diff -merge *。mdlp -crlf -diff -merge *。slxp -crlf -diff -merge *。sldd -crlf -diff -merge *。slxc -crlf -diff -merge *。mlproj -crlf -diff -merge *。mldatx -crlf -diff -merge *。slreqx -crlf -diff -merge *。sfx -crlf -diff -merge *。sltx -crlf -diff -merge
    这些行指定的Git不应试图自动换行,DIFF,以及MATLAB和Simulink文件的合并企图。万博1manbetx

  3. 检查您在项目中使用的需要注册为二进制的其他文件类型。检查档案如MEX-files (.mexa64.mexmaci64.mexw64),.xlsxjpg.PDF。docx等。为所需的每种文件类型在属性文件中添加一行。

    *。mexa64 -crlf -diff -merge *。mexw64 -crlf -diff -merge *。xlsx -crlf -diff -merge *.docx -crlf -diff -merge *.pdf -crlf -diff -merge *.jpg -crlf -diff -merge *.png -crlf -diff -merge
  4. 重新启动MATLAB,这样就可以在项目中使用Git客户机了。

在安装了命令行Git客户机并将模型文件注册为二进制文件之后,可以在项目中使用Git的合并特性。

小费

您可以通过不压缩而节省Simulink模型来减少Git存储库的大小。万博1manbetx关闭压缩会导致磁盘上的SLX文件更大,但会减少存储库的大小。

要使用此设置新的SLX文件,使用随SLX压缩设置为NONE模型模板您的模型。对于现有的SLX文件,设置压缩,然后保存模型。欲了解更多信息,请参阅设置SLX压缩级别

Git

若要从另一个仓库重用代码,你可以指定Git的子模块在一个项目中。

要克隆外部Git仓库的子模块:

  1. 在项目选项卡,在源代码控制部分,单击

  2. 在子模块对话框中,单击+按钮。

  3. 在添加子模块对话框,在远程框,指定存储库位置。可选,点击验证

  4. 路径框中指定子模块在项目中的位置,然后单击好吧。“子模块”对话框显示子模块的状态和详细信息。

  5. 检查状态消息,然后单击返回到您的项目。

更新子模块

在使用在顶级项目中,通过单击submodules,然后单击,检查子模块是最新的更新。如果任何子模块定义发生了更改,则更新将确保子模块文件夹包含正确的文件。更新应用于子模块层次结构中的所有子子模块。

使用获取和合并子模块

当您想管理子模块时,打开“子模块”对话框。

  1. 要获得子模块的最新版本,请在“子模块”对话框中单击

  2. 抓取后,必须合并。检查状态消息中的子模块对话框有关当前相对于资源库中的远程跟踪分支的分支信息框。当您看到消息后面,你需要从仓库到本地分支的更改合并。

  3. 请点击分支机构并使用“分支”对话框将原始更改合并到本地分支。看到拉,获取和合并

使用Push将更改发送到子模块存储库

如果您在子模块中进行了更改,并希望将更改发送回存储库:

  1. 请在父项目的本地提交。

  2. 打开子模块对话框,然后单击

如果您希望其他项目用户在克隆父项目时在子模块中获得您的更改,请确保索引和头匹配。

  1. 在子模块对话框,检查索引和头部值。该指数指向头在你第一次克隆的子模块,或当你最后一次提交的父项目库的时候提交。如果指数和头部不匹配,则必须更新索引。

  2. 要更新索引,请在父项目中提交更改,然后单击在子模块对话框。此操作使得指数和头一样。

相关的话题