首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在gitconfig中正确地给这个git行计数命令起别名?

如何在gitconfig中正确地给这个git行计数命令起别名?
EN

Stack Overflow用户
提问于 2018-06-27 21:19:36
回答 1查看 83关注 0票数 0

我在Stack Overflow上找到了这个命令,用于计算每个用户对存储库的LOC贡献:

代码语言:javascript
复制
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中将其别名为一个命令时,我得到了各种错误。我不知道如何正确地转义它,这样当我调用"git count-line“时,它才能在我的bash中正常运行。我已经根据StackOverflow上描述git别名的其他问题进行了多次尝试,但我总是得到不同的问题。

到目前为止,我已经在我的gitconfig中尝试了很多东西。这个错误给了我最少的错误:

代码语言:javascript
复制
[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"

这是上面给出的错误:

代码语言:javascript
复制
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

(据我所知,我使用的是Windows7计算机,因此我需要在整个命令前后使用引号)

EN

回答 1

Stack Overflow用户

发布于 2018-06-28 10:15:41

好了,经过一个半小时的调试和摆弄,我终于找到了问题所在:我需要转义printf语句中新行字符中的反斜杠。

代码语言:javascript
复制
broken: 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"
fixed:  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"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51063879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档