通常、gitエイリアスは単一のコマンドに制限されます。
git config --global alias.ci commit
だから、git commit
あなたはこれを行うことができますgit ci
しかし、ここに関数を挿入することもできるようです。
git config --global alias.up-sub '!f() { cd $1 && git checkout master && git pull && git submodule update --init --recursive; }; f'
これにより電話をかけることができます。git up-sub some-submodule
問題は、これがどのように機能するかです。!f()
他のどの状況でもこの構文を見たことはありません。
答え1
通常のシェル関数の定義と呼び出しのように見えます。爆発音だけが目立つが、git-config(1)
マニュアルを素早く検索してみると説明が出ます。
エイリアス拡張の前に感嘆符が付いている場合、これはシェルコマンドとして扱われます。たとえば、「alias.new = !gitk --all --not ORIG_HEAD」を定義し、「git new」を呼び出すことは、シェルコマンド「gitk --all --not ORIG_HEAD」を実行するのと同じです。シェルコマンドは、リポジトリの最上位ディレクトリ(必ずしも現在のディレクトリである必要はありません)で実行されます。
強打がない場合は、git
サブコマンドのエイリアスが指定されます。