matlabのコマンドウィンドウでGitを使う
matlabコードをGitで管理していますがコマンドウィンドウからもgitを叩けるのをこのサイト見て知ったのでメモします。
外部コマンドの実行の仕方
じつは”!”を事前につけるとコマンドプロンプトのコマンドが実行できるようです。ipconfigなども打てました。
一連のgit操作
一連のGitの操作に!を前置すれば済みます
!git add . !git commit -m "AutoMaticUpdate" !git push origin master
なんとこれをmファイルでまとめて実行させることもできます。mファイルでシェル芸ができます。
これって脆弱性なんじゃないか…
注意点・エラー
git commitでメッセージを指定しないと通常vim等のエディタが出ますが上記の文字化けと組まれると非常にきついです。メッセージ指定しようね。
gitのversionが古いとpush時に以下のようなメッセージが出ます。(文字化け含む)
fatal: AggregateException encountered. 1 縺、莉・荳翫�繧ィ繝ゥ繝シ縺檎匱逕溘@縺セ縺励◆縲 bash: /dev/tty: No such device or address error: failed to execute prompt script (exit code 1) fatal: could not read Username for 'https://github.com': Invalid argument
ここの記事にある通り公式から最新のverをインストールすることで解決します。
自動でGitでpushする関数
で,やっぱりこういうのは関数化したいわけで, GitComiiter関数を作成しました。evalを使っている邪悪なプログラムですが引数にCommit Messageを受けて動きます。 なお,デフォルト引数としてMessageがないときは自動的に適当なコメントをつけてくれます。
function GitComiiter(message) if nargin < 1 message = 'AutoMaticUpdate' end !git add . eval(['!git commit -m "',message,'"']) !git push origin master end
脆弱性とかよくわかんないので詳しい方のご指摘・ご助言お待ちしております。