最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
Git™ を使用して MATLAB® でブランチをマージする場合は、コマンド ライン Git クライアントをインストールし、システム全体で使用できるようにしなければなりません。
MATLAB でコマンド !git
を使用して、Git がインストールされているかどうかをチェックします。何も返されない場合は、コマンド ライン Git をインストールする必要があります。
オペレーティング システム | 手順 |
---|---|
Windows® 上 |
|
Linux® 上 | Git はほとんどのディストリビューションで使用できます。使用しているディストリビューション用に Git をインストールします。たとえば、Debian® では次のように入力して Git をインストールします。 sudo apt-get install git |
Mac 上 | Mavericks (10.9) 以降では、ターミナルから |
HTTPS または SSH を使用して、GitHub® や GitLab™ などのリモート リポジトリのクローンを作成できます。HTTPS を使用してリモート リポジトリとやり取りする際にログイン プロンプトが頻繁に表示されないようにするには、代わりに SSH を使用して新しいパブリック キーを追加し、リポジトリのクローンを作成します。SSH を使用した接続の問題を回避するには、環境変数 HOME
を設定し、それを使用して SSH キーを保存します。詳細については、MATLAB での SSH 認証の使用を参照してください。
バイナリ ファイルの破損を防ぐには、Git を使用してブランチをマージする前にバイナリ ファイルを登録します。詳細については、バイナリ ファイルの Git への登録を参照してください。
HTTPS を使用してリモート リポジトリとやり取りする際にログイン プロンプトが頻繁に表示されないようにするには、代わりに SSH を使用して新しいパブリック キーを追加し、リポジトリのクローンを作成します。
MATLAB と Git の統合では、ユーザーの環境変数 HOME
を使用して、SSH キーを含む .ssh
フォルダーを検索します。環境変数 HOME
が設定されていない場合や、SSH キーが適切に保存されていない場合は、GitHub や GitLab のようなリモート リポジトリに SSH を使用して接続する際にエラーが発生します。
MATLAB 内で SSH 認証を使用するには、次を行います。
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
はそのキーをオーバーライドするかどうかを尋ねます。HOME/.ssh
フォルダーにキーを配置します。どの HOME
ディレクトリで MATLAB と Git の統合が行われているかを確認するには、MATLAB コマンド ウィンドウに次のように入力します。
getenv('HOME')
getenv('HOME')
が何も返さない場合は、環境変数 HOME
を設定する必要があります。
Windows 上で環境変数 HOME
を設定するには、次を行います。
スタート メニューの検索ボックスで、"システムの詳細設定" を検索して選択します。
[詳細設定] タブで [環境変数] をクリックします。
ユーザー環境変数セクションで、[新規] をクリックします。環境変数 HOME
を作成してその値を指定します。
環境変数 HOME
は、Linux および Mac では常に設定されています。
GitHub または GitLab アカウントを、SSH キーを使用するように設定します。
.ssh
フォルダー内の .pub
ファイルの内容をコピーします。
その内容を、アカウント設定の SSH キー セクションにある [Add SSH key] フィールドに貼り付けます。
サードパーティのソース管理ツールを使用する場合、MATLAB および Simulink® のファイル拡張子 (.mlx
、.mat
、.fig
、.mlapp
、.mdl
、.slx
、.mdlp
、.slxp
、.sldd
、.p
など) をバイナリ形式で登録しなければなりません。拡張子を登録しないと、ファイルを送信するときに、行末の文字の変更、トークンの展開、キーワードの代入または automerge の試行によって、これらのツールがファイルを破損する可能性があります。ファイルの破損は MATLAB の外部でソース管理ツールを使用する場合、あるいはファイル形式を最初に登録せずに MATLAB からファイルを送信しようとする場合に発生することがあります。
また、ファイルのチェックイン時の破損を避けるために、他のファイル拡張子がバイナリとして登録されていることも確認してください。MEX ファイル、.xlsx
、.jpg
、.pdf
、.docx
などのファイルを確認し登録します。
コマンド ライン Git クライアントをインストールした後に、競合マーカー挿入による Git でのファイル破損を防ぐことができます。そうするには、.gitattributes
ファイルを編集してバイナリ ファイルを登録します。詳細は、以下を参照してください。
サンドボックス フォルダーに .gitattributes
ファイルがない場合は、MATLAB コマンド プロンプトで次のように入力して作成します。
edit .gitattributes
次の行を .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
バイナリとして登録する必要のある他のファイル タイプを確認します。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
MATLAB を再起動して Gitクライアントの使用を開始できるようにします。
ヒント
Simulink モデルを圧縮せずに保存することで、Git リポジトリのサイズを削減できます。圧縮をオフにすると、ディスク上の SLX ファイルのサイズは大きくなりますが、リポジトリのサイズは小さくなります。
この設定を新しい SLX ファイルで使用するには、[SLX 圧縮] を [なし] に設定したモデル テンプレートを使用してモデルを作成します。既存の SLX ファイルについては、圧縮を設定してからモデルを保存します。詳細については、SLX 圧縮レベルの設定 (Simulink)を参照してください。
コードを他のリポジトリから再使用するには、Git サブモジュールを指定します。
外部の Git リポジトリをサブモジュールとしてクローンするには、次を行います。
MATLAB の現在のフォルダー ブラウザーで右クリックし、[ソース管理] 、 [サブモジュール] を選択します。
[サブモジュール] ダイアログ ボックスで、[+] ボタンをクリックします。
[サブモジュールの追加] ダイアログ ボックスの [リモート] ボックスで、リポジトリの場所を指定します。オプションで、[検証] をクリックします。
[パス] ボックスで、サブモジュールの場所を指定して [OK] をクリックします。[サブモジュール] ダイアログ ボックスにサブモジュールのステータスと詳細が表示されます。
ステータス メッセージを確認して、[閉じる] をクリックします。
[プル] を使用してリモート リポジトリから最新の変更を取得した後、[サブモジュール]、[更新] の順にクリックして、サブモジュールが最新状態であることを確認します。サブモジュールの定義に変更があった場合、更新により、サブモジュールのフォルダーに正しいファイルが確実に含まれるようになります。更新はサブモジュール階層内のすべての子サブモジュールに適用されます。
追加したサブモジュールを管理する場合、[サブモジュール] ダイアログ ボックスを開きます。
サブモジュールの最新バージョンを入手するには、[サブモジュール] ダイアログ ボックスで [取得] をクリックします。
取得後はマージしなければなりません。[サブモジュール] ダイアログ ボックスの [ステータス] メッセージで、リポジトリ内のリモート トラッキング ブランチに対する現在のブランチに関する情報を確認します。メッセージ Behind
が表示される場合、リポジトリの変更内容をローカル ブランチにマージしなければなりません。
[ブランチ] をクリックし、[ブランチ] ダイアログ ボックスを使用して元の変更をローカル ブランチにマージします。取得とマージを参照してください。
サブモジュールで変更を行い、変更をリポジトリに送信して戻す場合は、次を行います。
親フォルダーでローカル コミットを実行します。
[サブモジュール] ダイアログ ボックスを開いて [プッシュ] をクリックします。
他のユーザーが親フォルダーをクローンする際にサブモジュールの変更を取得できるようにするには、インデックスと head が一致することを確認します。
[サブモジュール] ダイアログ ボックスで、インデックスと head の値を確認します。インデックスは、サブモジュールをはじめてクローンしたとき、または親フォルダーを最後にコミットしたときの head コミットを指します。インデックスと head が一致しない場合、インデックスを更新しなければなりません。
インデックスを更新するには、親フォルダーで変更をコミットしてから、[サブモジュール] ダイアログ ボックスで [プッシュ] をクリックします。この操作により、インデックスと head が同じになります。