主要内容

在项目中使用源代码管理

您可以使用项目处理源代码管理下的文件。源代码管理将文件存储在存储库中,允许您将文件从存储库中签出并重新签入以保留更改,还允许您查看已签入文件的不同版本的历史记录。有关在MathWorks产品中使用源代码管理的更多信息,请参阅s manbetx 845关于MathWorks源代码控制集成

项目与两个源代码管理系统Git集成™ 和颠覆®(SVN)。

要使用源代码管理设置项目,请使用以下任一工作流:

  • 从现有存储库创建新项目。

  • 将现有项目添加到源代码控制中。

  • 在已受源代码管理的文件夹中创建新项目。

  • 创建一个新的GitHub®新项目或现有项目的存储库。

然后,当您的项目处于源代码控制下时,您可以在MATLAB中执行操作®例如签入和签出文件、运行检查以及提交和恢复更改。

MATLAB在线™,不支持Subversion集成。万博1manbetx

设置源控制

有四种方法可以建立具有源代码控制的项目。

从现有存储库创建新项目

通过从源代码控制中检索文件,从现有存储库中创建项目的新本地副本。您可以克隆Git存储库,或从SVN存储库检出文件,或使用其他源代码控制集成。

要从现有存储库创建新项目,请执行以下操作:

  1. 首页选项卡,单击>项目>来自Git>项目>从SVN.打开“来自源代码控制的新项目”对话框。

  2. 如果知道存储库位置,请将其粘贴到库路径字段。

    否则,要浏览并验证要从中检索文件的存储库路径,请单击改变

    1. 在对话框中,通过在字段中输入或粘贴URL、从最近的存储库列表中选择或单击按钮。

    2. 点击验证检查存储库路径。如果路径无效,请对照源代码管理存储库浏览器检查URL。

    3. 如果看到存储库的身份验证对话框,请输入登录信息继续。

    4. 如有必要,请在存储库树中选择更深的文件夹。使用SVN,您可能希望从大旅行箱或在下的分支文件夹标签

    5. 指定完要检索的URL路径后,单击好啊。对话框关闭,您将从“源代码管理”对话框返回到新项目。

  3. 沙盒字段,选择您想要放置新项目检索到的文件的工作文件夹。对于SVN,最好使用本地文件夹,因为使用网络文件夹速度很慢。

  4. 点击检索

    如果您的存储库已包含项目,则当工具完成将文件检索到选定的沙盒文件夹时,项目已准备就绪。

    如果沙箱还不包含项目,则会弹出对话框询问是否要在该文件夹中创建项目。要创建项目,请指定项目名称并单击好啊. 此时将显示欢迎屏幕,以帮助您设置新项目。有关设置项目的详细信息,请参见建立项目

如果你遇到像这样的错误OutOfMemoryError:Java堆空间克隆大型Git存储库时,请编辑MATLAB首选项以增加堆大小。

  1. 首页选项卡,环境部分,单击首选项

  2. 选择MATLAB>一般>Java堆内存

  3. 移动滑块以增加堆大小,然后单击好啊

  4. 重新启动MATLAB。

将现有项目添加到源代码管理

如果您有一个现有项目,可以将其添加到Git或SVN源代码管理中。

要将项目添加到源代码管理,请执行以下操作:

  1. 项目选项卡,源控制部分,单击使用源代码管理.打开“源控制信息”对话框。

  2. 点击将项目添加到源代码管理按钮。此时将打开“添加到源代码管理”对话框。

  3. 源码控制工具列表,为您的存储库选择正确的工具。如果选择Git,则跳过步骤4,直接进入步骤5。

  4. 如果您使用的是SVN远程存储库,要指定现有存储库,请单击按钮浏览存储库,将URL粘贴到字段中,或使用列表选择最近的存储库。

    点击验证要检查所选存储库的路径,请单击好啊

  5. 点击转换完成将项目添加到源代码管理。

    项目运行完整性检查。

  6. 在完整性检查运行之后,单击开放项目返回到您的项目。

    项目将显示当前源代码管理工具和存储库位置的详细信息。

  7. 如果创建了新存储库,请选择文件夹>被改进的视图和点击犯罪将文件的第一个版本提交到新存储库。在对话框中,输入注释,然后单击提交

如果想要用Git合并分支,需要执行额外的设置步骤。有关更多信息,请参见设置Git源代码控制

如果要使用内置版本以外的SVN版本,请参阅建立SVN源控制

在已受源代码管理的文件夹中创建新项目

如果从已在源代码管理下的文件夹创建新项目,MATLAB可以自动将新项目添加到源代码管理中。创建项目后,单击检测按钮。有关从文件夹创建项目的详细信息,请参见创建项目

创造新的GitHub存储库

创建GitHub存储库可以将Git源代码控制添加到新的或现有的项目中。您创建的GitHub存储库将成为项目远程存储库。要创建GitHub存储库,您必须拥有一个GitHub帐户。

创建一个空白项目和一个GitHub远程存储库:

  1. 首页选项卡,单击>项目>来自Git

  2. 选择>GitHub库.在GitHub对话框中,输入您的用户名个人访问令牌.填写存储库名称描述字段并单击创造

    MATLAB创建一个新的公共GitHub存储库并填充库路径字段中包含https://github.com/myusername/mynewrepository格式的信息。

  3. 沙盒字段,指定沙箱的位置。所选文件夹必须为空。点击检索创建沙箱。

    要确认项目名称和创建,请单击好啊

创建GitHub存储库和沙箱之后,将您的文件添加到沙箱中。看到标记要添加到源代码管理的文件. 将文件的第一个版本提交到本地存储库,然后将所有修改推送到远程GitHub存储库。

提示

如果要为现有项目创建远程GitHub存储库,请将项目共享到GitHub。

您的项目加载,在项目选项卡上,选择共有>GitHub。有关详细说明,请参阅中的在GitHub上发布共享项目

执行源控制操作

检索版本和检出项目文件

此表显示了如何检查修改的项目文件、更新修订、获取和管理文件锁定以及标记项目文件。

行动 程序
刷新项目文件的状态。

要检查本地修改的文件,请在项目选项卡,源控制部分,单击刷新。刷新查询本地沙盒状态,并检查是否使用MATLAB之外的其他工具进行了更改。

有关更多信息,请参见更新SVN文件状态和修订版更新Git文件状态和修订

检查项目文件中的修改。

要了解存储库中是否有项目的新版本,请在文件夹查看,右键单击文件并选择源控制>检查是否有修改

使用SVN,此选项将联系存储库以检查外部修改。项目将比较本地文件的修订号和存储库版本。如果存储库中的修订号大于本地沙盒文件夹中的修订号,则项目将显示(非最新)本地文件的修订号旁边。

更新所有项目文件。

使用SVN,要获取所有项目文件的最新更改,请转到项目Tab,并在源控制部分,单击使现代化.项目将显示一个对话框,列出磁盘上已更改的所有文件。您可以使用项目首选项控制此行为显示源代码控制更新的更改。有关详细信息,请参阅更新SVN文件状态和修订版

使用Git,要从源代码管理存储库获取所有项目文件的最新更改并将其合并到当前分支中,请转到项目Tab,并在源控制部分,单击。要手动获取更改和合并,请在项目选项卡,源控制部分,单击获取. 这将更新本地存储库中的所有源分支。当你点击获取,您的沙盒文件不会更改。若要查看来自其他分支的更改,请将原始更改合并到本地分支。有关详细信息,请参阅使用Git Pull, Push和Fetch文件

更新选定项目文件的版本。

要更新选定的文件集,请在文件夹视图,右键单击文件,并选择源控制>使现代化用于您正在使用的源代码管理系统的命令。例如,如果您正在使用SVN,请选择源控制>更新从SVN从存储库获取所选文件的新本地副本。

清除SVN登录信息。 要清除任何存储的登录凭据,请在项目选项卡,源控制部分,单击清除登录
获取SVN文件锁。

要获取SVN文件锁,请在文件夹查看,选择要签出的文件。右键单击所选文件并选择源控制>获得文件锁.SVN源代码控制列中出现一个锁符号。其他用户在他们的沙箱中看不到锁符号,但是当您有锁时,他们无法获得文件锁或签入更改。查看或破锁,在项目选项卡,单击

获得文件锁仅适用于SVN。Git没有锁。

管理SVN存储库锁。

要管理存储库的全局SVN锁,请在项目选项卡,源控制部分,单击。有关详细信息,请参阅获取SVN文件锁

标记项目文件的版本。

要确定所有项目文件的特定修订,请在项目选项卡,源控制部分,单击标签.指定标记文本并单击好啊。标记将添加到每个项目文件中。如果没有标记,则会出现错误标签文件夹。有关更多信息,请参见建立SVN源控制

检查项目文件中的变更

控件可以查看项目文件中的更改文件夹>被改进的视图。该表显示了如何查看已修改项目文件的列表,查看文件的历史记录,并比较两个文件的修订。

行动 程序
查看修改后的项目文件。

文件夹视图中,选择修改(文件数量)表1文件夹>被改进的只有当您对项目使用源代码控制时,视图才可见。

提示

使用列表布局,以查看文件,而不需要展开文件夹。

您可以使用源代码管理摘要状态标识已修改或冲突的文件夹内容文件夹视图中,文件夹显示汇总的源代码管理状态。这使查找文件中的更改,特别是冲突文件变得更容易。您可以将鼠标悬停在源代码管理状态上(例如吉特SVN列)以查看工具提示,其中显示修改、冲突、添加和删除的文件数量。

更新已修改的文件列表。

要更新“修改的文件”列表,请在项目选项卡,源控制部分,单击刷新

查看修订历史。

文件夹查看,在文件上单击鼠标右键,然后选择源控制>显示修订

要浏览和比较提交的SVN更改集中的文件,请在项目选项卡,源控制部分中,选择显示日志。在“文件修订”对话框中,选择一个修订以查看已修改文件的列表。右键单击下部列表中的文件以查看更改或保存修订。

比较修订版。

文件夹查看,在文件上单击鼠标右键,然后选择比较>与祖先与本地存储库(Git)或沙箱中最后签出的版本(SVN)运行比较。比较工具显示一个报告。

要比较文件的其他版本,请选择比较>与修订

要查看比较报告,请选择要比较的修订,然后单击比较选择。或者,选择一个修订并单击与当地。有关详细信息,请参阅比较文件和文件夹和合并文件

项目定义文件。的文件资源/项目文件夹是您第一次创建或更改项目时生成的项目定义文件。项目定义文件使您能够将项目元数据添加到文件中,而无需签出它们。可以通过这种方式更改元数据的一些例子是快捷方式、标签和项目描述。项目定义文件还指定添加到项目中的文件。这些文件不是项目的一部分。

对项目所做的任何更改都会在资源/项目文件夹中。这些文件将项目的定义存储在XML文件中,XML文件的格式可以随时更改。

您不需要直接查看项目定义文件,除非源代码控制工具需要合并。显示这些文件是为了让您了解提交到源代码控制系统的所有文件。

从R2020b开始,默认的项目定义文件类型是使用多个项目文件(固定路径长度)。若要从创建项目时选择的类型更改项目定义文件管理,请使用matlab.project.convertDefinitionFilesmatlab.project.convertDefinitionFiles保存项目的源代码控制历史记录。

警告

为避免合并问题,不要对项目进行多次转换定义文件类型。

对于R2020b之前的版本,如果要从创建项目时选择的类型更改项目定义文件管理,请执行以下操作:

  1. 首页选项卡,环境部分,单击首选项选择MATLAB>项目新项目节中,选择下面的一个选项项目定义文件:

    • 使用多个项目文件-有助于避免合并共享项目上的问题

    • 使用多个项目文件(固定路径长度)-如果需要使用长路径,则效果更好

    • 使用单个项目文件(不建议用于源代码管理)-速度更快,但当两个用户将同一项目中的更改提交给源代码管理工具时,可能会导致合并问题

  2. 创建项目存档文件(.mlproj).有关更多信息,请参见共享项目出口

  3. 从存档项目创建新项目。有关详细信息,请参阅创建项目

停止管理带有项目的文件夹并删除资源/项目文件夹,看到matlab.project.deleteProject

运行项目检查

要对项目运行检查,请在项目选项卡上,单击向下箭头以展开工具画廊,在下面项目检查点击检查项目。项目检查是否存在项目完整性问题,例如缺少文件、未保存文件或不受源代码管理的文件。将显示一个对话框报告结果。您可以单击以获取详细信息,并按照提示修复问题。

如果要检查所需的文件,请单击依赖分析仪分析已修改文件的依赖关系。使用依赖项工具分析项目的结构。

有关检查可以修复的问题的详细信息,请参阅在项目中使用派生文件分析项目依赖关系

提交修改过的项目文件

在检查变更和运行项目检查之后,您就可以将修改后的项目文件提交到源代码控制。该表显示了如何提交修改后的项目文件。

行动 程序
将所有修改的文件提交到源代码管理。

文件夹视图中,选择修改(文件数量)选项卡上的项目选项卡,源控制部分,单击犯罪。在对话框中输入注释,然后单击提交.如果您正在使用Git源代码控制,那么它将提交到您的本地存储库。如果您正在使用SVN源代码控制,则会将更改提交到存储库。

如果由于存储库已向前移动而无法提交,则会显示一条消息。在提交文件之前,必须将其修订版更新为当前头部修订版。如果您使用的是Git源代码管理,请单击。如果您使用的是SVN源代码管理,请单击使现代化.在你做出承诺之前解决任何冲突。

将所选文件提交到源代码管理。

文件夹查看,选择文件,单击鼠标右键,然后选择源控制>犯罪

如果您提交单独的文件,则可能无法提交跟踪您的文件的相关项目定义文件。要避免这种情况,请提交所有已修改的文件。

使用Git推送项目文件。

要将本地提交发送到远程存储库,在项目选项卡,源控制部分,单击.如果由于存储库已移动而不能直接推送更改,则会出现一条消息。点击获取从远程存储库获取所有更改。合并分支并解决冲突,然后可以推送更改。有关详细信息,请参阅使用Git Pull, Push和Fetch文件

使用Git推送空项目文件夹。

不能将空文件夹添加到Git源代码控制中,因此不能单击然后克隆一个空文件夹。您可以在项目中创建一个空文件夹,但如果推送更改,然后同步一个新的沙盒,则该空文件夹不会出现在新的沙盒中。相反,跑吧检查项目,将为您创建空文件夹。

或者,要将空文件夹推送到存储库以供其他用户同步,请创建gitignore将文件放入文件夹中,然后推送更改。

创建Git池。

Git存储未提交的更改供以后使用项目选项卡,源控制部分,单击藏匿。此时将打开“隐藏”对话框。单击新的箱子创建包含当前修改的文件的存储。有关详细信息,请参阅使用Git池

用Git创建一个分支。

要创建分支,请在项目选项卡,源控制部分,单击分支机构。此时会出现“分支”对话框,从中可以查看、切换、创建和合并分支。

为新分支选择一个源。单击分支浏览器关系图中的节点,或在“源”文本框中输入唯一标识符。您可以输入标记、分支名称或SHA1哈希的唯一前缀(例如,73年c637)确定特定的提交。保留默认值以从当前分支的头创建分支。在列表中输入名称分支机构名称文本框并单击创造

使用Git切换、比较、保存和合并分支。

控件上切换、比较、保存和合并分支项目选项卡,源控制部分,单击分支机构。此时会出现“分支”对话框,从中可以查看、切换、创建和合并分支。有关更多信息,请参见使用Git进行分支和合并

解决冲突。

如果您和其他用户在不同的沙盒或不同的分支上更改了相同的文件,则在您尝试提交修改后的文件时会出现冲突消息。如有必要,请提取冲突标记,比较导致冲突的差异,并解决冲突。

在中查找冲突的文件文件夹>被改进的看法使用源代码管理摘要状态标识冲突的文件夹内容。文件夹显示汇总的源代码管理状态。这样可以更容易地查找文件中的更改,尤其是冲突文件。您可以将鼠标悬停在文件夹的源代码管理状态上,以查看工具提示,其中显示修改、冲突、添加和删除了多少文件。

提示

使用列表布局,以查看文件,而不需要展开文件夹。

检查源代码管理状态列(吉特SVN)对于带有红色警告符号(表示冲突)的文件。右键单击冲突文件并选择视图冲突比较版本。将打开一个比较报告,显示冲突文件之间的差异。

解决更改并希望在沙箱中提交版本后,右键单击该文件并选择源控制>马克冲突解决

Git,分支社会地位吉特窗格更改为合并安全

选择文件夹>被改进的查看以检查更改。

恢复更改

此表显示如何还原项目文件中的更改。有关还原更改的详细信息,请参阅还原源代码管理中的更改

行动 程序
还原本地更改。

要释放锁并恢复到上次沙盒更新中的版本(即您从存储库同步或检索到的上次版本),请在文件夹查看,右键单击要恢复的文件并选择源控制>放弃本地更改并释放锁

要在使用Git时放弃本地更改,右键单击文件并选择源控制>还原本地更改。若要删除所有本地更改,请单击分支机构吉特窗格并单击回到头部

将文件还原为指定的修订版本

要将文件还原为指定版本,请在文件上单击鼠标右键,然后选择“恢复”源控制>恢复使用SVN源控制>使用Git还原

在“还原文件”对话框中,选择要还原到的修订。选择修订以查看有关更改的信息,如作者、日期、日志消息。单击还原

如果您将一个文件还原到以前的版本,然后进行更改,那么在解决与存储库历史记录的冲突之前,您不能提交该文件。

将项目还原为指定的版本。

要将项目还原为指定版本,请在项目选项卡,源控制部分,单击恢复项目.在“恢复文件”对话框中,选择要恢复到的修订。

列表中的每个修订都是已修改文件的更改集。选择一个修订可查看有关更改的信息,如作者、日期和日志消息。

选择修订并确认信息正确后,单击还原

在项目中使用派生文件

通常,从项目中省略派生文件和临时文件或将其从源代码管理中排除是最佳做法项目选项卡上,单击向下箭头以展开工具画廊,在下面项目检查点击检查项目.如果您添加slprj文件夹,项目检查建议您将其从项目中删除,并提供修复。

排除派生文件(例如.墨西哥*,则slprj文件夹公约文件夹,或来自源代码控制的其他代码生成文件夹,因为它们可能导致问题。例如:

  • 使用可以执行文件锁定的源代码管理系统,您可能会遇到冲突。如果slprj是在源代码控制和你生成的代码,大部分文件下slprj更改并被锁定。由于文件权限错误,其他用户无法生成代码slprj文件夹也用于通过代码生成进行模拟,因此锁定这些文件会对团队产生影响。同样的问题也会出现在二进制文件中,例如.墨西哥*

  • 删除slprj通常是必需的。然而,删除slprj如果文件夹位于某些源代码控制工具(例如SVN)下,则会导致“非工作副本”错误等问题。

  • 如果您想将生成的代码作为流程的工件检入,通常会将一些文件从slprj将文件夹缓存到作为项目一部分的单独位置。这样,您就可以在需要时删除临时缓存文件夹。使用packNGo(MATLAB编码器)函数列出生成的代码文件,并使用项目API使用适当的元数据将它们添加到项目中。

  • 这个slprj文件夹可以包含许多小文件。这可能会影响一些源代码控制工具的性能,因为这些文件都是最新的。

查找未保存更改的项目文件

您可以检查项目中有无未保存更改的文件。上项目选项卡上,单击向下箭头以展开工具画廊,在下面项目检查点击显示未保存的更改

在“未保存的更改”对话框中,可以看到包含未保存更改的项目文件。project仅检测在MATLAB和Simulink中编辑的未保存更改万博1manbetx®编辑。手动检查在其他工具中编辑的更改。如果已引用项目,则文件将按项目分组。您可以保存或放弃所有检测到的更改。

关闭项目时管理打开的文件

关闭项目时,如果存在未保存更改的文件,则会显示一条消息,提示您保存或放弃更改。如果您引用了项目,则可以查看包含未保存更改的所有文件,并按项目分组。为了避免丢失工作,可以按文件、项目或全局保存或放弃更改。

要控制这种行为,就上首页选项卡,环境部分,单击首选项.去MATLAB>项目项目关闭部分,选择或清除标记的复选框检查打开的项目模型并关闭它们,除非它们是脏的

相关话题