【问题标题】:Using GitHub with MATLAB R2014b将 GitHub 与 MATLAB R2014b 一起使用
【发布时间】:2014-10-31 14:28:51
【问题描述】:

您可能知道,我们有source control in MATLAB R2014b。我想在 Matlab R2014b 中使用 GitHub。在 MATLAB 中,有一个Git 的手册。第三方源代码管理工具的说明:

如果您使用第三方源代码管理工具,则必须注册您的 MATLAB 和 Simulink® 文件扩展名,例如 .mat、.mdl 和 .slx 二进制格式。如果您不注册扩展,这些工具可以 通过更改行尾提交文件时损坏文件 字符、扩展标记、替换关键字或尝试 自动合并。无论您使用源代码管理,都可能发生损坏 MATLAB 之外的工具,或者如果您尝试从 MATLAB 提交文件 无需先注册您的文件格式。

我该怎么做?在 MATLAB 中,我们应该设置“存储库”和“沙箱”。如何在 GitHub 上设置这些(尤其是“沙盒”)?我应该使用 MATLAB 或 GitHub 创建存储库吗?如何将存储库链接到第二个?

MATLAB 中的“沙盒”是否与 GitHub 中的“克隆”相同?

【问题讨论】:

    标签: git matlab github


    【解决方案1】:

    此图演示了 Git 在 MATLAB 中的工作流程。

    如您所见,您将在本地目录中工作,即沙盒。从那里您将能够将更改提交到本地存储库。然后可以将它们推送到远程存储库,例如GitHub。

    您可以选择clone 远程 Git 存储库或create a new one

    我建议您在 GitHub 上创建一个新存储库,然后使用克隆链接从 MATLAB 中创建本地存储库。这会将空存储库克隆到您的工作目录中。此本地副本称为沙盒。您可以开始使用这些文件并对其进行修改。达到某个里程碑后,您可以将更改提交到本地存储库。这将在远程存储库 (GitHub) 之前。然后,您可以将这些提交推送到您的远程存储库(或获取其他人推送到远程存储库的其他提交)。

    添加存储库后,您首先需要注册二进制文件; 在你的仓库中创建一个gitattributes文件并添加以下内容;

    *.mat -crlf -diff -merge
    *.p -crlf -diff -merge
    *.slx -crlf -diff -merge
    *.mdl -crlf -diff -merge
    

    这些行指定不对这些类型的文件尝试自动换行、差异和合并尝试。

    您还可以检查您使用的其他文件类型,这些文件类型也需要注册为二进制文件,以避免在签入时损坏。检查 .mdlp、.slxp、MEX 文件(.mexa64、.mexmaci64、.mexw32、.mexw64)、.xlsx、.jpg、.pdf、.docx 等文件。在属性文件中添加一行您需要的每种文件类型;

    *.mdlp -crlf -diff -merge
    *.slxp -crlf -diff -merge
    *.sldd -crlf -diff -merge
    *.mexa64 -crlf -diff -merge
    *.mexw32 -crlf -diff -merge
    *.mexw64 -crlf -diff -merge
    *.mexmaci64 -crlf -diff -merge
    *.xlsx -crlf -diff -merge
    *.docx -crlf -diff -merge
    *.pdf -crlf -diff -merge
    *.jpg -crlf -diff -merge
    *.png -crlf -diff -merge
    

    您可以在这里找到更多信息:http://www.mathworks.nl/help/matlab/matlab_prog/set-up-git-source-control.html

    之后,您可以将 additioncommit 修改的文件标记到本地存储库。如果你愿意,你也可以push and fetch 到远程仓库。

    请注意,如果您想合并分支,则需要安装命令行 Git 客户端(如果您还没有的话)。

    【讨论】:

    • 感谢您的回答。首先我应该使用MatlabGitHub 创建存储库? Matlab 中的“沙盒”是什么?你能更详细地描述一下吗?
    • @0xMB 在第一步中,我们应该使用MatlabGitHub 创建存储库?
    • Matlab 中的“沙盒”是否与GitHub 中的“克隆”相同?
    【解决方案2】:

    .gitattributes 文件中明确将这些文件指定为二进制文件:

    .git 属性

    # MATLAB/Simulink binary formats
    *.mat  binary
    *.mdl  binary
    *.slx  binary
    # etc..
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-24
      • 2021-03-03
      • 1970-01-01
      相关资源
      最近更新 更多