Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Git ソース管理の設定

Windows での MATLAB の構成

コミット、マージ、プッシュされたコミットの受信など、いくつかの操作では、Git™ フックを使用します。Git フックを Windows® 上で MATLAB® と共に使用するには、Cygwin をインストールして MATLAB ライブラリ パスに追加します。

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

  2. MATLAB コマンド ウィンドウで edit(fullfile(matlabroot,"toolbox","local","librarypath.txt")) と入力します。

    librarypath.txt の末尾に、Cygwin の bin フォルダーの場所 (C:\cygwin64\bin など) を追加します。

    librarypath.txt ファイルの編集権限がない場合は、ネイティブ メソッド ライブラリの特定を参照してください。

  3. MATLAB を再起動して変更を有効にします。

Git LFS または資格情報ヘルパーを使用するには、コマンド ライン Git もインストールしなければなりません。詳細については、MATLAB での Git LFS の使用Git 資格情報ヘルパーの設定を参照してください。

HTTPS または SSH を使用して、GitHub® や GitLab™ などのリモート リポジトリのクローンを作成できます。HTTPS を使用してリモート リポジトリとやり取りする際にログイン プロンプトが頻繁に表示されないようにするには、資格情報を記憶するように Git 資格情報マネージャーを設定するか、代わりに SSH を使用して新しいパブリック キーを追加し、リポジトリのクローンを作成します。詳細については、Git 資格情報ヘルパーの設定MATLAB での SSH 認証の使用を参照してください。

Git ソース管理対象の新規プロジェクトの場合、MATLAB は自動的にバイナリ ファイルを登録してマージ中の破損を防ぎます。既存のプロジェクトの場合は、バイナリ ファイルを登録してから、Git を使用してブランチをマージします。詳細については、バイナリ ファイルの Git への登録を参照してください。

パスの長いファイルを取り扱う場合は、MATLAB で次のコマンドを実行します。

!git config --global core.longpaths true

MATLAB での SSH 認証の使用

HTTPS を使用してリモート リポジトリとやり取りする際にログイン プロンプトが頻繁に表示されないようにするには、代わりに SSH を使用して新しいパブリック キーを追加し、リポジトリのクローンを作成します。

MATLAB 内で SSH 認証を使用するには、次を行います。

  1. ssh-keygen を使用して有効な SSH キーを生成します。コマンド プロンプトで、次のように入力します。

    ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (C:\Users\username/.ssh/id_rsa):
    Created directory 'C:\Users\username/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in C:\Users\username/.ssh/id_rsa.
    Your public key has been saved in C:\Users\username/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:/Nc9/tnZ7Dmh77+iJMxmPVrlPqaFd6J1j1YRXEk3Tgs company\username@us-username
    ssh-keygen は、キーの保存場所 (.ssh/id_rsa など) を確認し、パスフレーズを要求します。キーを使用するときにパスワードを入力しない場合は、パスフレーズを空のままにします。指定したフォルダーにキーが既にある場合、ssh-keygen はそのキーをオーバーライドするかどうかを尋ねます。

    メモ

    SSH キーを直接 MATLAB で生成することはできません。コマンド ライン Git インストールに付属の ssh-keygen を使用して、SSH キーを生成します。

  2. Linux および Mac では、HOME/.ssh フォルダーにキーを配置します。どの HOME ディレクトリで MATLAB と Git の統合が行われているかを確認するには、MATLAB コマンド ウィンドウに次のように入力します。

    getenv('HOME')

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

    Windows では、USERPROFILE/.ssh または HOME/.ssh フォルダーにキーを配置します。どの USERPROFILE ディレクトリで MATLAB と Git の統合が行われているかを確認するには、MATLAB コマンド ウィンドウに次のように入力します。

    getenv('USERPROFILE')

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

  3. GitHub または GitLab アカウントを、SSH キーを使用するように設定します。

    • .ssh フォルダー内の .pub ファイルの内容をコピーします。

    • その内容を、アカウント設定の SSH キー セクションにある [Add SSH key] フィールドに貼り付けます。

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

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

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

バイナリ ファイルを .gitattributes ファイルに登録することにより、Git によるファイルの破損を防止できます。

  • 新規プロジェクト、および他のソース管理システムから切り替えられたプロジェクトの場合、MATLAB は自動的に .gitattributes ファイルを作成し、登録するバイナリ ファイルのリストを入力します。これは、登録されたファイルに対して Git による改行、比較およびマージの自動試行を禁止することを指定します。

  • 既存のプロジェクトの場合は、.gitattributes ファイルを作成して、登録するバイナリ ファイルのリストを入力します。

    1. コマンド ウィンドウで以下を入力します。

      edit .gitattributes

    2. 必要な各ファイル タイプの行を属性ファイルに追加します。たとえば、*.mlapp binary のようになります。

      ヒント

      登録する共通のバイナリ ファイルのリストを含む .gitattributes ファイルをコピーできます。

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

    3. MATLAB を再起動して Gitクライアントの使用を開始できるようにします。

ヒント

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

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

Git 資格情報ヘルパーの設定

資格情報ヘルパーを使用してユーザー名およびパスワードを記憶するように MATLAB Git 統合を設定できます。すべてのプラットフォームについて、Git Credential Manager Core が資格情報ヘルパーとして推奨されます。

Windows で Credential Manager Core を使用するには、次のようにします。

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

  2. 資格情報ヘルパーを選択するセクションで、[Git Credential Manager Core] を選択します。

MATLAB での Git LFS の使用

MATLAB Git 統合で Git Large File Storage (LFS) を使用するには、コマンド ライン Git および LFS をインストールします。

Windows で Git LFS を使用するには、次のようにします。

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

  2. インストールするコンポーネントを選択するセクションで、[Git LFS (Large File Support)] および [Associate .sh files to be run with Bash] を選択します。

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

LFS は Git フックを使用します。Cygwin がインストールされていることを確認してください。詳細については、Windows での MATLAB の構成を参照してください。

MATLAB は Git LFS のロックをサポートしません。MATLAB は git lfs track などの LFS コマンドと統合されていません。代わりに !git lfs track を使用してください。

関連するトピック