Для затравки небольшая оптимизация git help. У git такое количество команд, что без алиасов работать очень неудобно даже с автодополнением. Но гитовская команда help при вызове с алиасом выдаёт лишь строку, которая сокращена в этом алиасе. А хотелось бы получать справку по соответствующей команде. Для этого я написал такой простенький скрипт (назвав его gh, для краткости):
Код: Выделить всё
#!/bin/sh
c=$(sed -n '/\[alias]/,/\[/p' <~/.gitconfig |
sed 's/^\s*//' | grep -v ^# |
egrep -o "^$1 *= *[a-z]+" |
cut -d = -f 2)
[ -z "$c" ] &&
exec git help $1
git help $c
Как видите, если алиас не найден, команде git help передаётся первый аргумент в неизменном виде. Т.е. получаем единообразный вызов справки и для алиасов, и для внутренних команд. По алиасу на внешнюю команду будет выдана стандартная строка git help для алиасов. Для полноты картины можно добавить в bash-completions для gh такую же строку, как там уже есть для git, чтобы алиасы и команды после неё ещё и автодополнялись.