【Shell】利用 Windows PowerShell 统计 Git 项目提交次数

本文为 AI 生成内容

在软件开发和项目管理中,了解团队成员或自己在Git项目中的活跃程度是评估项目进展和个人贡献的重要指标。 今天,我们就来探讨如何使用 Windows PowerShell 编写脚本来统计Git项目的提交次数,这对于跟踪项目进度、分析开发效率以及评估个人绩效都有着重要的意义。

效果

PixPin_2025-02-08_15-00-51.png

脚本

text
复制代码
# 确保输出编码为 UTF-8 $OutputEncoding = [System.Text.Encoding]::UTF8 # 定义包含多个 Git 仓库的目录 $repos = @( "C:\99\code\test", "C:\99\code\test2" ) # 提示用户输入 Git 账号名 $gitUsername = Read-Host "Please enter your Git username" # 提示用户输入年份 $inputYear = Read-Host "Please enter the year" # 初始化每个月的提交次数 $monthlyCounts = @{} for ($month = 1; $month -le 12; $month++) { $monthlyCounts[$month] = 0 } # 遍历每个仓库 foreach ($repo in $repos) { if (Test-Path "$repo\.git") { Push-Location $repo # 遍历每个月 for ($month = 1; $month -le 12; $month++) { # 计算每个月的起始和结束日期 $startDate = "$inputYear-$month-01 00:00:00" $endDate = "$inputYear-$month-$([datetime]::DaysInMonth($inputYear, $month)) 23:59:59" # 查询指定用户在本月的提交次数 $userCount = git log --after="$startDate" --before="$endDate" --pretty='%aN' | Where-Object { $_ -eq $gitUsername } | Measure-Object -Line | Select-Object -ExpandProperty Lines # 累加到每个月的提交次数 $monthlyCounts[$month] += $userCount } Pop-Location } } # 输出每个月的提交次数 $monthlyCounts.GetEnumerator() | Sort-Object Key | ForEach-Object { $month = $_.Key.ToString("00") # 确保月份为两位数 $count = $_.Value Write-Output "$month $count" } # 计算总提交次数 $totalCount = ($monthlyCounts.Values | Measure-Object -Sum).Sum # 输出总提交次数 Write-Output "-----" Write-Output "total $gitUsername $totalCount"

脚本使用方法

1. 创建脚本文件

将上述代码复制到一个文本编辑器中,例如Windows自带的记事本或者更专业的代码编辑器(如Visual Studio Code)。 然后将文件保存为git.ps1,注意文件扩展名必须是.ps1,这是PowerShell脚本文件的标准扩展名。

2. 运行脚本前的权限设置(可选)

由于Windows默认情况下可能会限制运行PowerShell脚本的权限,你需要先确保当前的执行策略允许运行本地脚本。可以按照以下步骤进行操作:

  • 以管理员身份打开PowerShell。
  • 输入以下命令查看当前的执行策略:
powershell
复制代码
Get-ExecutionPolicy
  • 如果当前策略不允许运行脚本,你可以将执行策略临时修改为RemoteSigned,这样可以运行本地创建的脚本,命令如下:
powershell
复制代码
Set-ExecutionPolicy RemoteSigned

在运行完脚本后,你可以将执行策略改回原来的设置,以保证系统安全。

3. 运行脚本

  • 打开PowerShell,并导航到保存git.ps1脚本的目录。例如,如果脚本保存在D:\Scripts目录下,可以使用以下命令进入该目录:
powershell
复制代码
Set-Location D:\Scripts
  • 运行脚本,在PowerShell中输入:
powershell
复制代码
./git.ps1
  • 按照脚本的提示,依次输入你的Git用户名和需要统计的年份,脚本将自动计算并输出每个月的提交次数以及全年的总提交次数。

总结与应用

通过这个Windows PowerShell脚本,我们可以高效地统计Git项目的提交次数。无论是团队管理者想要了解团队成员的工作进度,还是开发者自己想要回顾自己在一年中的代码贡献,这个脚本都能提供有价值的数据支持。在实际应用中,你可以将这个脚本集成到项目的自动化脚本中,定期生成提交次数报告,以便更好地进行项目管理和分析。

希望这篇博客对你理解和使用Windows PowerShell统计Git项目提交次数有所帮助。如果你有任何问题或建议,欢迎在评论区留言交流。

我还有一个 node 版的,会打开一个 html 可视化看,但我的所有node项目是放在一个 node 私人仓库里面的,分享不了

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
一个人丶99
作者分享
【Electron】图片魔方
3
梦里的场景像被岁月浸过的老胶片,每一帧都带着温润的质感——指尖触到的藤蔓带着晨露的冰凉,远处钟楼的铜铃声震得空气发颤,甚至连擦肩而过的陌生人衣角上的暗纹,都清晰得如同刻在视网膜上。当意识从梦境的深潭里浮上来时,指尖还残留着虚空中攥住的微凉,目光扫过熟悉的天花板,却有半分恍惚悬在现实与幻梦的交界处,仿佛灵魂还在那片真实得令人心悸的风景里迟迟不肯归位。
2
99起始页:[99起始页](http://123.60.153.252:99) 上班摸鱼之作:一个拥有 40 多个组件的浏览器标签页,而且 99% 的代码都是 AI 帮我实现的!【从 4 月 6 日实现第一个组件,到现在 5 月 29 日,平均一天一个组件,中间有 1 个星期比较消极没咋搞】从随机哔哩哔哩到观音灵签,每个组件都是工作间隙的小小成就。 虽然只是基于前端三件套的简单实现,但借助 Cursor 和 AI 的强大能力,我只需提出想法,代码就自动生成了。这种高效协作让我能在不引人注意的情况下,悄悄构建自己的数字乐园。 当我看到这些组件在页面上流畅运行时,那种成就感比完成工作任务还要爽!这大概是 AI 时代最完美的摸鱼方式了。 #AI 编程 #上班摸鱼 #前端开发 #打工人的小确幸
4
反常规工具类型设计文档 ——5 大「反向生活助手」创意
3
程序员自救指南:从「想做很多事」到「开始第一件事」
8
下载 APP