Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Git ソース管理の設定

コマンド ライン Git クライアントのインストールと MATLAB インストールの構成

Git™ を使用して MATLAB® でブランチをマージする場合は、コマンド ライン Git クライアントをインストールし、システム全体で使用できるようにしなければなりません。

MATLAB でコマンド !git を使用して、Git がインストールされているかどうかをチェックします。何も返されない場合は、コマンド ライン Git をインストールする必要があります。

オペレーティング システム手順
Windows®

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

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

    • SSH 実行可能ファイルの選択に関するセクションで、オプション [Use OpenSSH] を選択します。MATLAB は OpenSSH キーのみをサポートします。

    • 行末変換を設定するセクションで、オプション [Checkout as-is, commit as-is] を選択してファイルの行末が変換されるのを防ぎます。

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

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

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

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

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

  3. コンピューターを再起動して変更を有効にします。

Linux®

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

sudo apt-get install git

Mac

Mavericks (10.9) 以降では、ターミナルから git を実行します。Git がまだインストールされていない場合は、Xcode コマンド ライン ツールをインストールするように促されます。その他のオプションについては、https://git-scm.com/doc を参照してください。

HTTPS または SSH を使用して、GitHub® や GitLab™ などのリモート リポジトリのクローンを作成できます。HTTPS を使用してリモート リポジトリとやり取りする際にログイン プロンプトが頻繁に表示されないようにするには、代わりに SSH を使用して新しいパブリック キーを追加し、リポジトリのクローンを作成します。SSH を使用した接続の問題を回避するには、環境変数 HOME を設定し、それを使用して SSH キーを保存します。詳細については、MATLAB での SSH 認証の使用を参照してください。

バイナリ ファイルの破損を防ぐには、Git を使用してブランチをマージする前にバイナリ ファイルを登録します。詳細については、バイナリ ファイルの Git への登録を参照してください。

MATLAB での SSH 認証の使用

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

MATLAB と Git の統合では、ユーザーの環境変数 HOME を使用して、SSH キーを含む .ssh フォルダーを検索します。環境変数 HOME が設定されていない場合や、SSH キーが適切に保存されていない場合は、GitHub や GitLab のようなリモート リポジトリに 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 はそのキーをオーバーライドするかどうかを尋ねます。

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

    getenv('HOME')
  3. getenv('HOME') が何も返さない場合は、環境変数 HOME を設定する必要があります。

    Windows 上で環境変数 HOME を設定するには、次を行います。

    • スタート メニューの検索ボックスで、"システムの詳細設定" を検索して選択します。

    • [詳細設定] タブで [環境変数] をクリックします。

    • ユーザー環境変数セクションで、[新規] をクリックします。環境変数 HOME を作成してその値を指定します。

    環境変数 HOME は、Linux および Mac では常に設定されています。

  4. 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 などのファイルを確認し登録します。

コマンド ライン Git クライアントをインストールした後に、競合マーカー挿入による Git でのファイル破損を防ぐことができます。そうするには、.gitattributes ファイルを編集してバイナリ ファイルを登録します。詳細は、以下を参照してください。

  1. サンドボックス フォルダーに .gitattributes ファイルがない場合は、MATLAB コマンド プロンプトで次のように入力して作成します。

    edit .gitattributes
  2. 次の行を .gitattributes ファイルに追加します。

    *.mlx -crlf -diff -merge
    *.mat -crlf -diff -merge
    *.fig -crlf -diff -merge
    *.mdl -crlf -diff -merge
    *.slx -crlf -diff -merge
    *.mlapp -crlf -diff -merge
    *.p -crlf -diff -merge
    *.mdlp -crlf -diff -merge
    *.slxp -crlf -diff -merge
    *.sldd -crlf -diff -merge
    *.slxc -crlf -diff -merge
    *.mlproj -crlf -diff -merge
    *.mldatx -crlf -diff -merge
    *.slreqx -crlf -diff -merge
    *.sfx -crlf -diff -merge
    *.sltx -crlf -diff -merge
    これらの行は、Git がこれらのタイプのファイルに対して自動改行、比較およびマージを行わないことを指定します。

  3. バイナリとして登録する必要のある他のファイル タイプを確認します。MEX ファイル (.mexa64.mexmaci64.mexw64)、.xlsx.jpg.pdf.docx などのファイルを確認します。必要な各ファイル タイプの行を属性ファイルに追加します。

    *.mexa64 -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
  4. MATLAB を再起動して Gitクライアントの使用を開始できるようにします。

ヒント

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

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

Git サブモジュールの追加

コードを他のリポジトリから再使用するには、Git サブモジュールを指定します。

外部の Git リポジトリをサブモジュールとしてクローンするには、次を行います。

  1. MATLAB の現在のフォルダー ブラウザーで右クリックし、[ソース管理][サブモジュール] を選択します。

  2. [サブモジュール] ダイアログ ボックスで、[+] ボタンをクリックします。

  3. [サブモジュールの追加] ダイアログ ボックスの [リモート] ボックスで、リポジトリの場所を指定します。オプションで、[検証] をクリックします。

  4. [パス] ボックスで、サブモジュールの場所を指定して [OK] をクリックします。[サブモジュール] ダイアログ ボックスにサブモジュールのステータスと詳細が表示されます。

  5. ステータス メッセージを確認して、[閉じる] をクリックします。

サブモジュールの更新

[プル] を使用してリモート リポジトリから最新の変更を取得した後、[サブモジュール]、[更新] の順にクリックして、サブモジュールが最新状態であることを確認します。サブモジュールの定義に変更があった場合、更新により、サブモジュールのフォルダーに正しいファイルが確実に含まれるようになります。更新はサブモジュール階層内のすべての子サブモジュールに適用されます。

サブモジュールでの取得とマージの使用

追加したサブモジュールを管理する場合、[サブモジュール] ダイアログ ボックスを開きます。

  1. サブモジュールの最新バージョンを入手するには、[サブモジュール] ダイアログ ボックスで [取得] をクリックします。

  2. 取得後はマージしなければなりません。[サブモジュール] ダイアログ ボックスの [ステータス] メッセージで、リポジトリ内のリモート トラッキング ブランチに対する現在のブランチに関する情報を確認します。メッセージ Behind が表示される場合、リポジトリの変更内容をローカル ブランチにマージしなければなりません。

  3. [ブランチ] をクリックし、[ブランチ] ダイアログ ボックスを使用して元の変更をローカル ブランチにマージします。取得とマージを参照してください。

プッシュを使用したサブモジュール リポジトリへの変更の送信

サブモジュールで変更を行い、変更をリポジトリに送信して戻す場合は、次を行います。

  1. 親フォルダーでローカル コミットを実行します。

  2. [サブモジュール] ダイアログ ボックスを開いて [プッシュ] をクリックします。

他のユーザーが親フォルダーをクローンする際にサブモジュールの変更を取得できるようにするには、インデックスと head が一致することを確認します。

  1. [サブモジュール] ダイアログ ボックスで、インデックスと head の値を確認します。インデックスは、サブモジュールをはじめてクローンしたとき、または親フォルダーを最後にコミットしたときの head コミットを指します。インデックスと head が一致しない場合、インデックスを更新しなければなりません。

  2. インデックスを更新するには、親フォルダーで変更をコミットしてから、[サブモジュール] ダイアログ ボックスで [プッシュ] をクリックします。この操作により、インデックスと head が同じになります。

関連するトピック