Main Content

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

Git ソース管理の設定

MATLAB® で Git™ ソース管理を使用すると、ファイルを管理して他のユーザーと共同作業を行うことができます。Git を使用すると、ファイルの変更を追跡して、後で特定のバージョンを再表示できます。詳細については、MATLAB での Git の使用を参照してください。

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

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

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

  • ログイン プロンプトが頻繁に表示されないようにするために、Git SSH 認証を使用するように MATLAB を設定するか、Git 資格情報ヘルパーをインストールする。(オプション)

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

  • 大規模なファイルを取り扱う場合は、Git LFS を使用するように Git を設定する。(オプション)

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

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

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

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

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

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

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

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

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

edit .gitattributes

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

Windows での MATLABGit 用の設定

Windows システムでパスの長いファイルを取り扱う場合は、長いパスのサポートを有効にします。また、Git フックを MATLAB で使用するには、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. GitHub® または GitLab® アカウントを、SSH キーを使用するように設定します。そのためには、.ssh フォルダーに移動して .pub ファイルの内容をコピーします。次に、アカウント設定に移動して、[SSH keys] セクションで .pub ファイルの内容を [Add SSH key] フィールドに貼り付けます。

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. GitHub または GitLab アカウントを、SSH キーを使用するように設定します。そのためには、.ssh フォルダーに移動して .pub ファイルの内容をコピーします。次に、アカウント設定に移動して、[SSH keys] セクションで .pub ファイルの内容を [Add SSH key] フィールドに貼り付けます。

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 圧縮レベルの設定 (Simulink)を参照してください。

メモ

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 のロックをサポートしません。また、MATLAB は git lfs track などの LFS コマンドもサポートしません。代わりに !git lfs track を使用してください。

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

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

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

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

Git LFS または資格情報ヘルパーを使用するには、コマンド ライン版の Git クライアントをインストールして、システム全体で使用できるようにする必要があります。R2020b より前では、Git を使用して MATLAB でブランチをマージするには、コマンド ライン版の 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を参照してください。

参考

関数

関連するトピック