Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Git ソース管理の設定

MATLAB® では、ファイルの管理や他のユーザーとの共同作業に Git™ ソース管理を使用できます。Git を使用すると、ファイルに対する変更を追跡し、特定のバージョンを後で再度呼び出すことができます。詳細については、Git リポジトリのクローンおよびプロジェクトをソース管理に追加するを参照してください。

Git を使用する前に、次の手順に従って MATLAB 用に設定します。

  • ファイルの破損を避けるためにバイナリ ファイルを Git に登録する。(すべてのシステムに必須)

  • Windows® システムで Git 用に MATLAB を構成する。(Windows システムに推奨)

  • 頻繁なログイン要求を回避するために、Git SSH 認証を使用するように MATLAB を構成するか、Git 資格情報ヘルパーをインストールする。(オプション)

  • Git リポジトリのサイズを削減するために Simulink® モデルの圧縮を無効にする。(オプション)

  • 大きなファイルを扱う場合は Git LFS を使用するように Git を構成する。(オプション)

  • 比較とマージに MATLAB を使用するように Git を構成する。(オプション)

R2020b より前の場合は、MATLAB で Git を使用してブランチをマージするために、コマンド ライン版の Git クライアントをインストールする必要があります。詳細については、コマンド ライン版の Git クライアントのインストールを参照してください。

Git へのバイナリ ファイルの登録

サードパーティのソース管理ツールを使用する場合は、MATLAB および Simulink の .mlx.mat.fig.mlapp.mdl.slx.mdlp.slxp.sldd.p などのファイル拡張子をバイナリ形式で登録する必要があります。.mexa64.mexmaci64.mexmaca64.mexw64 などの MEX ファイルの拡張子も登録します。拡張子を登録しないと、ファイルを送信するときに、それらのツールによる行末の文字の変更、トークンの展開、キーワードの代入、自動マージの試行によって、ファイルが破損する可能性があります。ファイルの破損は、MATLAB の外部のソース管理ツールを使用する場合、あるいはファイル形式を最初に登録しないで MATLAB からファイルを送信しようとした場合に発生することがあります。

また、チェックイン時の破損を避けるために、他のファイル拡張子もバイナリとして登録されていることを確認してください。.xlsx.jpg.pdf.docx などのファイル拡張子を確認して登録します。

バイナリ ファイルの拡張子を Git に登録するには、それらを .gitattributes ファイルに追加します。MATLAB では、Git ソース管理を使用する新しいプロジェクトを作成するか、既存のプロジェクトを別のソース管理システムから Git ソース管理に切り替えると、.gitattributes ファイルが自動的に作成され、登録する共通のバイナリ ファイルのリストが取り込まれます。

.gitattributes ファイルが自動的に作成されない場合は、登録する共通のバイナリ ファイルのリストを含むファイルを作成できます。MATLAB コマンド ウィンドウで次のように入力します。

copyfile(fullfile(matlabroot,'toolbox','shared','cmlink','git','auxiliary_files', ...
'mwgitattributes'),fullfile(pwd,'.gitattributes'))

あるいは、空の .gitattributes ファイルを作成するには次のように入力します。

edit .gitattributes

.gitattributes ファイルにまだ含まれていないバイナリ ファイルを登録するには、必要な各ファイル タイプの行をファイルに追加します。たとえば、*.mlapp binary とします。

Windows システムでの Git 用の MATLAB の構成

Windows システムでパスが長いファイルを扱う場合は、長いパスのサポートを有効にします。また、MATLAB で一部の Git フックを使用するには、Cygwin をインストールして MATLAB ライブラリ パスに追加します。Git フックは、コミット、マージ、プッシュされたコミットの受信などの操作でトリガーできるカスタム スクリプトです。

長いパスのサポートの有効化 (推奨)

Windows システムで長いパスのサポートを有効にするには、MATLAB で次のコマンドを実行します。

!git config --global core.longpaths true

Cygwin のインストール (オプション)

Windows システムで Cygwin をインストールするには、MATLAB ライブラリ パスに追加します。

  1. https://www.cygwin.com/からインストーラーをダウンロードして実行します。

  2. MATLAB で librarypath.txt を開きます。

    edit(fullfile(matlabroot,"toolbox","local","librarypath.txt"))

  3. librarypath.txt の末尾に、Cygwin の bin フォルダーの場所 (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 ファイルの編集権限がない場合は、ネイティブ メソッド ライブラリの特定を参照してください。

  4. MATLAB を再起動します。

Git SSH 認証を使用するための MATLAB の構成

HTTPS を使用してリモート リポジトリとやり取りする際にログイン プロンプトが頻繁に表示されないようにするには、代わりに SSH を使用して新しい公開鍵を追加し、リポジトリのクローンを作成します。次の表に、SSH 認証を使用するように MATLAB を構成する方法をオペレーティング システム別に示します。

オペレーティング システム手順
Windows
  1. コマンド ライン版の Git クライアントをインストールし、システム全体で使用できるようにします。Git がインストールされているかどうかを確認するには、MATLAB コマンド ウィンドウでコマンド !git を入力します。このコマンドから何も返されない場合、コマンド ライン版の Git をインストールする必要があります。詳細については、コマンド ライン版の Git クライアントのインストールを参照してください。

  2. すべての MATLAB セッションを閉じます。

  3. ssh-keygen コマンドを使用して SSH キーを生成します。たとえば、Windows コマンド プロンプトで次のコマンドを入力します。

    ssh-keygen -t ed25519 -C "your_email@example.com"
    ssh-keygen は、キーの保存場所を確認するように求め、パスフレーズを要求します。キーを使用するときにパスワードを入力しない場合は、パスフレーズを空のままにします。

    指定したフォルダーにキーが既にある場合、ssh-keygen はそのキーをオーバーライドするかどうかを尋ねます。

    R2021a より前の場合は、-m PEM オプションを指定して RSA 形式で SSH キーを生成します。そうしないと、ssh-keygen で既定の OpenSSH 形式を使用して SSH キーが作成されます。これは、R2021a より前のバージョンの MATLAB ではサポートされません。たとえば、Windows コマンド プロンプトで次のコマンドを入力します。

    ssh-keygen -m PEM
    -m PEM オプションを指定せずに SSH キーを生成した場合は、次のコマンドを使用して、サポートされる RSA 形式にキーを変換できます。ここで、~/.ssh/id_rsa は SSH キー ファイルの名前です。
    ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

  4. USERPROFILE/.ssh フォルダーまたは HOME/.ssh フォルダーにキーを配置します。MATLAB がどの USERPROFILE フォルダーで作業しているかを確認するには、MATLAB コマンド ウィンドウで次のように入力します。

    getenv('USERPROFILE')

    R2021a より前の場合は、-m PEM オプションを使用して SSH キーを作成してあれば手順 5 はスキップできます。

  5. MATLAB で SSH キーが検出されることを確認するには、MATLAB コマンド ウィンドウで次のように入力します。

    git = settings().matlab.sourcecontrol.git;
    git.PrivateKeyFile.PersonalValue = "C:\Users\username\.ssh\id_ed25519";
    git.PublicKeyFile.PersonalValue = "C:\Users\username\.ssh\id_ed25519.pub";

    SSH キーの生成時にパスフレーズを入力した場合は、そのパスフレーズを使用してセッションごとに 1 回だけプロンプトを表示するように MATLAB を構成します。これを行うには、Pageant を使用するか、MATLAB コマンド ウィンドウで次のように入力します。

    git.KeyHasPassphrase.PersonalValue = true;

    複数のキーを使用するには、Pageant を SSH エージェントとして使用します。Pageant が実行中の場合、MATLAB は USERPROFILE/.ssh で検索する前に、Pageant でキーを検索します。

  6. SSH キーを使用するように GitHub® または GitLab® のアカウントを構成します。これを行うには、.ssh フォルダーに移動し、.pub ファイルの内容をコピーします。その後、アカウント設定に移動し、[SSH keys] セクションの [Add SSH key] フィールドに .pub ファイルの内容を貼り付けます。

Linux® および macOS
  1. すべての MATLAB セッションを閉じます。

  2. ssh-keygen コマンドを使用して SSH キーを生成します。たとえば、ターミナル ウィンドウで次のコマンドを入力します。

    ssh-keygen -t ed25519 -C "your_email@example.com"
    ssh-keygen は、キーの保存場所を確認するように求め、パスフレーズを要求します。キーを使用するときにパスワードを入力しない場合は、パスフレーズを空のままにします。

    指定したフォルダーにキーが既にある場合、ssh-keygen はそのキーをオーバーライドするかどうかを尋ねます。

    R2021a より前の場合は、-m PEM オプションを指定して RSA 形式で SSH キーを生成します。そうしないと、ssh-keygen で既定の OpenSSH 形式を使用して SSH キーが作成されます。これは、R2021a より前のバージョンの MATLAB ではサポートされません。たとえば、ターミナル ウィンドウで次のコマンドを入力します。

    ssh-keygen -m PEM
    -m PEM オプションを指定せずに SSH キーを生成した場合は、次のコマンドを使用して、サポートされる RSA 形式にキーを変換できます。ここで、~/.ssh/id_rsa は SSH キー ファイルの名前です。
    ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

  3. HOME/.ssh フォルダーにキーを配置します。MATLAB がどの HOME フォルダーで作業しているかを確認するには、MATLAB コマンド ウィンドウで次のように入力します。

    getenv('HOME')

    R2021a より前の場合は、-m PEM オプションを使用して SSH キーを作成してあれば手順 4 はスキップできます。

  4. MATLAB で SSH キーが検出されることを確認するには、MATLAB コマンド ウィンドウで次のように入力します。

    git = settings().matlab.sourcecontrol.git;
    git.PrivateKeyFile.PersonalValue = "~/.ssh/id_ed25519";
    git.PublicKeyFile.PersonalValue = "~/.ssh/id_ed25519.pub";

    SSH キーの生成時にパスフレーズを入力した場合は、そのパスフレーズを使用してセッションごとに 1 回だけプロンプトを表示するように MATLAB を構成します。これを行うには、SSH エージェントを使用するか、MATLAB コマンド ウィンドウで次のように入力します。

    git.KeyHasPassphrase.PersonalValue = true;

    複数のキーを使用するには、SSH エージェントを使用します。SSH エージェントが実行中の場合、MATLAB は HOME/.ssh で検索する前に、エージェントでキーを検索します。

  5. SSH キーを使用するように GitHub または GitLab のアカウントを構成します。これを行うには、.ssh フォルダーに移動し、.pub ファイルの内容をコピーします。その後、アカウント設定に移動し、[SSH keys] セクションの [Add SSH key] フィールドに .pub ファイルの内容を貼り付けます。

Git 資格情報ヘルパーのインストール

R2021a 以降

Git の使用時にユーザー名とパスワードを記憶するように MATLAB を構成するには、資格情報ヘルパーをインストールします。推奨される資格情報ヘルパーは、すべてのプラットフォームで 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 モデルの圧縮の無効化

Simulink モデルを圧縮せずに保存することで、Git リポジトリのサイズを削減できます。圧縮をオフにすると、ディスク上の SLX ファイルのサイズは大きくなりますが、リポジトリのサイズは小さくなります。

この設定を新しい SLX ファイルで使用するには、[SLX 圧縮] を [なし] に設定したモデル テンプレートを使用してモデルを作成します。既存の SLX ファイルについては、圧縮を設定してからモデルを保存します。詳細については、SLX 圧縮レベルの設定を参照してください。

メモ

R2023b 以降、既定では、Simulink は保存処理中に圧縮を適用しません。

Git LFS を使用するための Git の構成

R2021a 以降

大きなファイルを扱う場合は、Git Large File Storage (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 のロックをサポートしません。また、git lfs track などの LFS コマンドも MATLAB ではサポートされていません。代わりに !git lfs track を使用してください。

比較とマージに MATLAB を使用するための Git の構成

比較とマージに MATLAB 比較ツールを使用するように Git を構成できます。MATLAB 比較ツールには、ライブ スクリプト、MAT ファイル、SLX ファイル、MDL ファイルなどの MathWorks® ファイルをマージするためのツールが用意されています。この自動マージ ツールを Git と共に使用して、同じ SLX ファイル内に異なるサブシステムの変更を含むブランチを自動的にマージできます。

MATLAB 比較ツールを使用するための Git の構成方法の詳細については、MATLAB を比較とマージに使用するための外部ソース管理のカスタマイズを参照してください。

コマンド ライン版の Git クライアントのインストール

Git LFS または資格情報ヘルパーを使用するには、コマンド ライン版の Git クライアントをインストールし、システム全体で使用できるようにする必要があります。R2020b より前の場合は、MATLAB で Git を使用してブランチをマージするために、コマンド ライン版の Git クライアントをインストールする必要があります。

Git がインストールされているかどうかを確認するには、MATLAB コマンド ウィンドウでコマンド !git を入力します。このコマンドから何も返されない場合、コマンド ライン版の Git をインストールする必要があります。次の表に、コマンド ライン版の Git をインストールする方法をオペレーティング システム別に示します。

オペレーティング システム手順
Windows
  1. https://gitforwindows.org/ からインストーラーをダウンロードして実行します。

  2. [Adjusting your PATH environment] セクションで、インストール オプション [Git from the command line and also from 3rd-party software] を選択します。このオプションを選択すると Git が変数 PATH に追加されてシステム全体で使用可能になるため、MATLAB が Git と通信できるようになります。

  3. 行末の変換を構成するセクションで、[Checkout Windows-style, commit Unix-style line endings] オプションを選択します。マシンとユーザーの間で行末の形式が強制されるわけではありませんが、各リポジトリの .gitattributes ファイルでテキスト ファイルの一貫した行末をサポートできます。

  4. システムを再起動して変更を有効にします。

Linux

ほとんどのディストリビューションで Git を利用できます。ディストリビューションに対応する Git をインストールします。たとえば、Debian® で Git をインストールするには次のように入力します。

sudo apt-get install git
macOSMavericks (10.9) 以上で、ターミナル ウィンドウから Git を実行します。Git をまだインストールしていない場合、Xcode Command Line Tools をインストールするように求められます。詳細については、https://git-scm.com/docを参照してください。

参考

関数

関連するトピック