Main Content

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

Git ソース管理の設定

プロジェクトでの Git ソース管理の使用

プロジェクトで提供されている Git™ のバージョンを使用するには、プロジェクトをソース管理に追加するときまたはソース管理から取得するときに、[ソース管理ツール] リストで [Git] を選択します。

  • 既存のプロジェクトを Git ソース管理に追加する場合は、そのサンドボックスにローカル Git リポジトリを作成します。リモート リポジトリは後で指定できます。プロジェクトをソース管理に追加するを参照してください。

  • リモート Git リポジトリをコピーしてプロジェクトを作成するには、MATLAB® の [ホーム] タブで [新規作成][プロジェクト][From Git] を選択ます。取得元のリモート リポジトリを指定した後に、ローカル リポジトリが作成されます。リモート リポジトリに対して変更のプル、取得およびプッシュを実行することもできます。Git リポジトリのクローン作成または SVN リポジトリのチェックアウトを参照してください。

    メモ

    空のフォルダーを Git ソース管理に追加することはできません。代わりに、[プロジェクトをチェック] を使用します。Git でのファイルのプル、プッシュおよび取得を参照してください。

    リモート リポジトリで Git サーバーを使用するには、独自の Apache™ Git サーバーを設定するか、Git サーバー ホスティング ソリューションを使用できます。サーバーは設定できないが、file:/// プロトコルを使用したファイル システムを介してリモート リポジトリを使用しなければならない場合は、リポジトリがチェックアウトされていない作業コピーをもつベア リポジトリであることを確認してください。

  • プロジェクトを GitHub® で公開するには、GitHub を使用したプロジェクトの共有を参照してください。共有すると、開いているプロジェクトに Git のソース管理が追加され、プロジェクトのリモート リポジトリが GitHub になります。

コマンド ライン 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 で次のコマンドを実行します。

!git config --global core.longpaths true

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 へのモデル ファイルの登録

コマンド ライン Git クライアントをインストールした後に、競合マーカーを挿入して、Git による Simulink® モデルの破損を防ぐことができます。これを行うには、.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
    これらの行は、MATLAB および Simulink のファイルに対して、Git が自動改行、diff およびマージを行わないことを指定します。

  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 クライアントの使用を開始できるようにします。

コマンド ライン Git クライアントをインストールし、モデル ファイルをバイナリとして登録すると、プロジェクトで Git のマージ機能を使用できます。

ヒント

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

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

Git サブモジュールの追加

別のリポジトリのコードを再利用するには、プロジェクトに含める Git サブモジュールを指定できます。

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

  1. [プロジェクト] タブの [ソース管理] セクションで、[サブモジュール] をクリックします。

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

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

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

  5. ステータス メッセージを確認し、[閉じる] をクリックしてプロジェクトに戻ります。

サブモジュールの更新

最上位のプロジェクトで [プル] を使用した後、[サブモジュール] をクリックし、[更新] をクリックして、サブモジュールが最新であることを確認します。サブモジュールの定義に変更がある場合、更新により、サブモジュールのフォルダーに正しいファイルが含まれていることを確認します。更新はサブモジュール階層内のすべての子サブモジュールに適用されます。

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

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

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

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

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

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

サブモジュールで変更を行い、変更をリポジトリに送信する場合は、次の手順に従います。

  1. 親プロジェクトでローカル コミットを実行します。

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

他のプロジェクト ユーザーが親プロジェクトをクローンするときにサブモジュールの変更を取得できるようにする場合は、インデックスとヘッドを一致させます。

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

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

関連するトピック