是否有一个我可以调用的命令,它将计算Git存储库中特定作者更改的行?我知道必须有方法来计算提交次数,因为Github会为其影响图执行此操作.
我有一个GIT存储库,我想计算在一段时间内由一个人或一组人添加/更改了多少行代码.可以用git计算吗?
我们有一个庞大而古老的代码库,需要大量的清理工作.我们一直都有编码标准,每个人都一直试图遵循这些标准,但是它们没有得到强制执行,因此随着时间的推移,很多违规行为都已进入.其中许多只是空白问题,比如使用制表符而不是空格,或者是空格.不应该是任何或缺少的空间.我们将开始积极执行我们的编码标准,以确保更多的违规行为不会蔓延,但很难以自动方式仅对更改强制执行,因此清理这些旧文件会很不错.
有些工具可以自动修复这些问题,但是如果我这样做,那么责备就会把我看作是这些线路的拥有者,而实际上我可能从来没有见过它们.我知道有一个设置可以指责忽略空白变化,但我不能让每个人都以同样的方式使用责任,包括其他可视化工具和gitstats之类的东西.在一个理想的世界中,有一些方法可以重写历史,看起来像是从未引入过违规,而没有掩盖谁介绍了实际的代码,但我找不到类似的东西.
当我对文件夹e,g中的文件运行git blame时:
git blame Foo/FileA.txt
它返回
fatal: no such path 'Foo/FileA.txt' in HEAD
我可以清楚地看到该文件存在于文件系统中,并且同一文件夹中的其他文件可以成功归咎于 - 所以发生了什么?
我正在发布这个问题和答案,因为它让我今天难倒了一段时间,而且我找不到能够解决所有解决方案的单一答案.
我想显示我的代码中所有 TODO 的列表,但使用历史记录 (Git) 排序并首先显示最近的。
有点像这里显示的结果: git – order commits 按日期引入“TODO”
但是显示的是 TODO 的行,而不是散列。
应该是这样的:
Fri May 22 11:22:27 2015 +0200 - // TODO: Refactor this code
Fri Apr 25 17:32:13 2014 +0200 - // TODO: We should remove this when tests pass
Sat Mar 29 23:11:39 2014 +0100 - // TODO: Rename to FooBar
Run Code Online (Sandbox Code Playgroud)
我认为git log不能证明这一点,但我不确定,而且我没有 Git CLI mojo 来自己解决这个问题。任何的想法?
《 Linux 101 Hacks》一书的第38页建议:
cat url-list.txt | xargs wget –c
Run Code Online (Sandbox Code Playgroud)
我通常这样做:
for i in `cat url-list.txt`
do
wget -c $i
done
Run Code Online (Sandbox Code Playgroud)
除了长度以外,还有什么东西比bash的旧的for loop技术好吗?
添加
在C源代码似乎只有一个岔路口。相反,bash-combo有多少个叉子?请详细说明这个问题。
我想在我的git存储库中测量"活动开发人员"
git shortlog --summary --numbered oldrelease..newrelease 给我一个最活跃的提交者列表,如下所示:
100 developer 1
90 developer 2
80 developer 3
1 developer 4
Run Code Online (Sandbox Code Playgroud)
但有时我会看到某些开发人员还原其他开发人员(或改进它).
现在,我想看看哪些开发者最积极地为此版本做出了贡献.给予代码更改的开发人员更多的权重,并减轻最终版本中其他人更改代码的开发人员的权重.
git diff oldrelease..newrelease
Run Code Online (Sandbox Code Playgroud)
可以在发布中给我所有更改的行.
我想'责备'所有这些线,以查看触及每个更改线的最后一个开发人员.怎么做?
接下来,对于所有更改的行,我想聚合它,以便最终得到这样的摘要.
git funky_new_command oldrelease..newrelease
developer 2 added 450, removed 200 lines
developer 3 added 500, removed 100 lines
developer 1 added 4, removed 50 lines
developer 4 added 1, removed 0 lines
Run Code Online (Sandbox Code Playgroud)
我认为这将为那些随着时间的推移对源代码库做出贡献的开发人员提供一个更好的想法,而不仅仅是那些提交大量文件的人.
git ×7
statistics ×2
bash ×1
c ×1
command-line ×1
for-loop ×1
fork ×1
git-blame ×1
git-log ×1
github ×1
repository ×1
standards ×1
todo ×1
xargs ×1