Я нашел эту команду в Переполнении стека, чтобы подсчитать вклады LOC каждого пользователя в репо:
git log --no-merges --pretty=format:%an --numstat | awk '/./ && !author { author = $0; next } author { ins[author] += $1; del[author] += $2 } /^$/ { author = ""; next } END { for (a in ins) { printf "%10d %10d %10d %s\n", ins[a] - del[a], ins[a], del[a], a } }' | sort -rn
Однако, когда я пытаюсь использовать псевдоним в качестве команды в моем .gitconfig, я получаю всевозможные ошибки. Я понятия не имею, как правильно избежать этого, чтобы он правильно работал в моем bash, когда я вызываю «git count-lines». Я сделал несколько попыток, основываясь на других вопросах о StackOverflow, описывающих псевдонимы git, но у меня продолжают появляться различные проблемы.
Я уже пробовал кучу вещей в моем gitconfig. Этот дает мне наименьшее количество ошибок:
[alias]
count-lines = "!f() { git log --no-merges --pretty=format:%an --numstat | awk '/./ && !author { author = $0; next } author { ins[author] += $1; del[author] += $2 } /^$/ { author = \"\"; next } END { for (a in ins) { printf \"%10d %10d %10d %s\n\", ins[a] - del[a], ins[a], del[a], a } }' | sort -rn; }; f"
Это ошибка, которую выдает выше:
awk: cmd. line:1: /./ && ... printf "%10d %10d %10d %s
awk: cmd. line:1: ^ unterminated string
awk: cmd. line:1: /./ && ... printf "%10d %10d %10d %s
awk: cmd. line:1: ^ syntax error
(насколько я понимаю, я на компьютере с Windows 7, поэтому мне нужно использовать кавычки вокруг всей команды)