我正在尝试为其创建一个别名,以便它在正常文件夹中执行正常行为,并被git 存储库内部mv
替换。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 提出了一个更好的解决方案(恕我直言),但仍然可以仅使用别名来实现您想要做的事情。
您的别名不起作用,因为外部双引号构成了git mv
单个标记,并且您没有git mv
可执行文件。如果删除外部双引号,您的别名应该可以正常工作。
顺便说一句,内部双引号 inecho "git mv"
没有用,但无害。
我没有立即可用于测试的 git 存储库,但我只是尝试使用以下别名:
alias foo='$(if [ x"`pwd`" = x"$HOME" ] ; then echo echo; else echo echo foo; fi)'