我想查看已添加到代码库中的所有代码行,因为我想运行字符频率计数。对于我编写的每个提交,我都希望使用git show
之类的东西,但是我需要该命令仅显示添加的代码行,而不显示删除的代码行或git show
显示的概述信息在顶部。
(我没有嫁给git show
,也许有更好的命令,这只是我所知道的最接近的命令。)
我最好的解决方案是使用git log --author=<me>
并仅获取commit shas(有一个命令,我不知道这是副手的)。然后,我可以遍历阴影并执行git show -p <sha>
,但这会让我得到我不想要的东西(删除了线条,并得到了概述)。任何帮助表示赞赏。
答案 0 :(得分:1)
您可以直接使用git log -p
使补丁与日志内联。使用--oneline
选项减少提交消息可以很容易地将其删除。然后只需过滤补丁的+
行,首先过滤掉diff头文件的+++
,最后剥离开头的+
:
git log -p --oneline --author=<me> | grep -v '^+++ ' | grep '^+' | sed 's/^+//'
答案 1 :(得分:0)
也许过滤git show -p
的输出:
git log --author="..." --format=format:%H \
| xargs git show -p --dst-prefix=never-used-string/ \
| sed -n '/never-used-string/! s/^+\(.*\)/\1/p'
应该给您几乎所有的需求(前提是never-used-string
不会出现在代码中的任何位置)。
不确定合并提交之类的东西...