mv
通常のフォルダで通常の動作を実行し、gitリポジトリ内で置き換えられるようにエイリアスを作成しようとしています。git mv
私は多くの方法を試しました。ステートメントは機能しますが、コマンドが正しく実行されないif
だけです。git mv
alias mv='"$(
if [ x`git rev-parse --show-toplevel 2> /dev/null` = x ];
echo mv;
else
echo "git mv";
fi)"'
答え1
私は次の機能を使用します:
gitmv()
{
# If in a git repo - call git mv. otherwise- call mv
if [ x`git rev-parse --show-toplevel 2> /dev/null` = x ];
then
mv "$@"
else
git mv "$@"
fi
}
編集する:
alias mv=gitmv
答え2
jhscheerはより良いソリューション(IMHO)を提案しましたが、エイリアスのみを使用して目的のタスクを実行することも依然として可能です。
外部二重引用符が単一のタグを形成し、実行可能ファイルがgit mv
ないため、エイリアスは機能しません。git mv
外部二重引用符を削除すると、エイリアスは正しく機能します。
ところが内側の二重引用符はecho "git mv"
役に立ちませんが、害はありません。
テストにすぐに使用できるgitリポジトリはありませんが、次のエイリアスを試しました。
alias foo='$(if [ x"`pwd`" = x"$HOME" ] ; then echo echo; else echo echo foo; fi)'