Git如何查看提交行數與刪除行數:統計代碼貢獻量的完整指南

Git如何查看提交行數與刪除行數:統計代碼貢獻量的完整指南

在軟件開發中,代碼行數統計是衡量團隊協作效率和項目進度的重要指標。通過Git的命令行工具,開發者可以輕松查看提交的代碼行數刪除的代碼行數以及凈增行數。本文將詳細介紹多種方法,并結合實際案例,幫助你快速掌握這一技能。


一、為什么需要統計代碼行數?

  1. 評估工作量:統計個人或團隊的代碼貢獻量,輔助績效考核。
  2. 分析代碼質量:通過刪除行數判斷重構頻率,評估代碼優化效果。
  3. 項目管理:監控項目整體進度,識別高頻修改的模塊。

二、基礎命令:查看個人提交的行數

1. 統計今日提交的代碼量

若想查看今天某個開發者(如xiaoming)的代碼貢獻,可使用以下命令:

git log --author="xiaoming" --since=midnight --pretty=tformat: --numstat
  • --author="xiaoming":指定提交者。
  • --since=midnight:僅統計從今日零點后的提交。
  • --numstat:輸出每次提交的新增行數(第一列)和刪除行數(第二列)。

示例輸出

20    5    path/to/file1
10    2    path/to/file2
  • 第一列:新增行數。
  • 第二列:刪除行數。
  • 第三列:文件路徑。

2. 匯總統計總行數

通過管道符結合awk,可以自動計算總行數:

git log --author="xiaoming" --since=midnight --pretty=tformat: --numstat | awk '{ add += $1; subs += $2 } END { printf "新增行數:%s,刪除行數:%s,凈增行數:%s\n", add, subs, add-subs }'

輸出示例

新增行數:30,刪除行數:7,凈增行數:23

三、按時間范圍統計代碼量

1. 指定時間段統計

統計某段時間內的代碼貢獻,例如2024年1月1日至2025年6月12日:

git log --author="xiaoming" --since="2024-01-01" --until="2025-06-12" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2 } END { printf "新增行數:%s,刪除行數:%s,凈增行數:%s\n", add, subs, add-subs }'

2. 統計所有分支的代碼量

若需包含所有分支,添加--all參數:

git log --all --author="xiaoming" --since="2024-01-01" --until="2025-06-12" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2 } END { printf "新增行數:%s,刪除行數:%s,凈增行數:%s\n", add, subs, add-subs }'

四、查看所有提交者的貢獻排名

1. 列出所有提交者

git log --format='%aN' | sort -u

2. 統計每位提交者的代碼量

git log --format='%aN' | sort -u | while read name; doecho -en "$name\t"git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2 } END { printf "新增:%s,刪除:%s\n", add, subs }'
done

輸出示例

xiaoming    新增:1500,刪除:300
lily        新增:800,刪除:150

五、高級技巧:圖形化工具與自動化

1. 使用GitHub/GitLab內置統計

  • GitHub:在倉庫主頁點擊“Insights” → “Contributors”,可查看每位貢獻者的提交行數。
  • GitLab:在項目頁面選擇“Insights” → “Code”,查看代碼量趨勢圖。

2. 集成到CI/CD流程

通過編寫Shell腳本,將統計結果自動生成報告并推送至團隊協作平臺(如Slack、企業微信):

#!/bin/bash
# 統計今日提交行數并發送通知
RESULT=$(git log --author="xiaoming" --since=midnight --pretty=tformat: --numstat | awk '{ add += $1; subs += $2 } END { printf "新增:%s,刪除:%s", add, subs }')
curl -X POST -H 'Content-type: application/json' --data '{"text":"今日代碼貢獻:'"$RESULT"'"}' https://webhook-url

六、注意事項與常見問題

1. 環境兼容性

  • Windows用戶:默認Git Bash可能缺少awk工具。可通過安裝Git for Windows獲取完整支持。
  • Linux/macOS:直接使用系統自帶的awk即可。

2. 統計局限性

  • 代碼質量:行數不代表代碼質量,例如大量空行或冗余代碼可能被誤判。
  • 文件類型:默認統計所有文件,建議通過--參數指定特定擴展名(如-- "*.py")。

3. 性能優化

  • 大型倉庫:使用--since--until縮小時間范圍,避免全量掃描導致性能問題。

七、結語

通過Git的命令行工具,開發者可以靈活統計代碼提交的行數與刪除行數,為團隊協作和項目管理提供數據支持。無論是日常開發中的快速檢查,還是項目復盤時的深度分析,這些技巧都能顯著提升工作效率。掌握這些命令后,你不僅能更高效地管理自己的代碼貢獻,還能幫助團隊實現更科學的開發流程。

立即嘗試:在終端中運行以下命令,查看你今天的代碼貢獻!

git log --author="$(git config user.name)" --since=midnight --pretty=tformat: --numstat | awk '{ add += $1; subs += $2 } END { printf "新增:%s,刪除:%s\n", add, subs }'

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/95366.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/95366.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/95366.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DVWA靶場通關筆記-SQL注入(SQL Injection Impossible級別)

目錄 一、源碼分析 1、index.php 2、impossible.php 二、SQL注入防范分析 1、Anti-CSRF 令牌 2、參數化查詢 3、輸入驗證 本系列為通過《DVWA靶場通關筆記》的SQL Injection 關卡(low,medium,high,impossible共4關)滲透集合…

MySQL中事務的作用和定義

在 MySQL 中,??事務(Transaction)?? 是一組數據庫操作的邏輯單元,這些操作要么??全部成功執行??,要么??全部失敗回滾??,以確保數據庫從一個一致狀態轉換到另一個一致狀態。事務是關系型數據庫&…

華為Fit4:腕間助手,守護你的健康,帶你開啟智慧生活

清晨被鬧鐘吵醒,想要關掉卻怎么也找不到手機?經常睡很久卻還是很困?重要的事情常常因為沒有被記錄和規劃清楚最終變得手忙腳亂?人流擁擠的地鐵上半天找不到刷碼信息?這些問題是不是生活中常常遇到,別擔心&a…

【交易系統系列36】揭秘幣安(Binance)技術心臟:從公開信息拼湊“MatchBox”撮合引擎架構

一、 核心概覽:從白皮書的豪言到監管文件的“實錘” 要理解幣安的架構,我們首先要抓住幾個關鍵的、有據可查的事實: 性能目標:在其早期白皮書中,幣安宣稱其撮合引擎能夠達到每秒140萬筆訂單的處理能力。這串數字,無論是在當時還是現在,都代表著對系統吞吐量和低延遲的極…

SpringBoot08-Spring Boot 多環境配置

方式一:純 Spring Profile(最常用,官方推薦)思路:用 application-{profile}.yml 切分配置,運行時指定用哪個 profile。 如何做:src/main/resources/application.ymlapplication-dev.ymlapplicat…

蒼穹外賣項目筆記day04--Redis入門

Redis 概念 Redis 是一個開源的、高性能的鍵值存儲系統,常被歸類為NoSQL數據庫。它支持多種數據結構,如字符串、列表、哈希、集合和有序集合,適用于緩存、消息隊列、實時分析等多種場景。Redis是一個基于內存的key-value結構數據庫。Redis …

OpenCV 圖像處理實戰與命令行參數配置:從輪廓檢測到模板匹配

在計算機視覺領域,OpenCV 是一款功能強大且應用廣泛的開源庫,它提供了豐富的 API,支持圖像讀取、預處理、特征檢測等多種操作。本文將結合實際代碼案例,詳細講解如何使用 OpenCV 實現輪廓檢測、輪廓近似、模板匹配等常用功能&…

深度學習---pytorch卷積神經網絡保存和使用最優模型

在深度學習模型訓練過程中,如何提升模型性能、精準保存最優模型并實現高效推理,是每個開發者必須攻克的關鍵環節。本文結合實際項目經驗與完整代碼示例,詳細拆解模型訓練優化、最優模型保存與加載、圖像預測全流程,幫助大家避開常…

FPGA實現Aurora 64B66B圖像視頻點對點傳輸,基于GTY高速收發器,提供2套工程源碼和技術支持

目錄 1、前言Aurora 64B66B是啥?官方有Example,為何要用你這個?工程概述免責聲明 2、相關方案推薦我已有的所有工程源碼總目錄----方便你快速找到自己喜歡的項目我這里已有的 GT 高速接口解決方案本方案在Aurora 8B10B上的應用 3、工程詳細設…

LeetCode 524.通過刪除字母匹配到字典里最長單詞

給你一個字符串 s 和一個字符串數組 dictionary ,找出并返回 dictionary 中最長的字符串,該字符串可以通過刪除 s 中的某些字符得到。 如果答案不止一個,返回長度最長且字母序最小的字符串。如果答案不存在,則返回空字符串。 示例…

kali_linux

【2024版】最新kali linux入門及常用簡單工具介紹(非常詳細)從零基礎入門到精通,看完這一篇就夠了-CSDN博客

MyBatis 常見錯誤與解決方案:從坑中爬出的實戰指南

🔍 MyBatis 常見錯誤與解決方案:從坑中爬出的實戰指南 文章目錄🔍 MyBatis 常見錯誤與解決方案:從坑中爬出的實戰指南🐛 一、N1 查詢問題與性能優化💡 什么是 N1 查詢問題??? 錯誤示例? 解決…

藍牙modem端frequency offset compensation算法描述

藍牙Modem中一個非常關鍵的算法:頻偏估計與補償(Frequency Offset Estimation and Compensation)。這個算法是接收機(解調端)能正確工作的基石。 我將為您詳細解釋這個算法的原理、必要性以及其工作流程。 一、核心問題:為什么需要頻偏補償? 頻偏的來源: 如第一張圖所…

基于STM32的居家養老健康安全檢測系統

若該文為原創文章,轉載請注明原文出處。一、 項目背景與立項意義社會老齡化趨勢加劇:全球范圍內,人口結構正經歷著前所未有的老齡化轉變。中國也不例外,正快速步入深度老齡化社會。隨之而來的是龐大的獨居、空巢老年人群體的健康監…

簡易TCP網絡程序

目錄 1. TCP 和 UDP 的基本區別 2. TCP 中的 listen、accept 和 connect 3. UDP 中的區別:沒有 listen、accept 和 connect 4. 總結對比: 2.字符串回響 2.1.核心功能 2.2 代碼展示 1. server.hpp 服務器頭文件 2. server.cpp 服務器源文件 3. …

廣電手機卡到底好不好?

中國廣電于2020年與中國移動簽署了戰略合作協議,雙方在5G基站建設方面實現了共建共享。直到2022年下半年,中國廣電才正式進入號卡服務領域,成為新晉運營商。雖然在三年的時間內其發展速度較快,但對于消費者而言,廣電的…

Git中批量恢復文件到之前提交狀態

<摘要> Git中批量恢復文件到之前提交狀態的核心命令是git checkout、git reset和git restore。根據文件是否已暫存&#xff08;git add&#xff09;&#xff0c;需采用不同方案&#xff1a;未暫存變更用git checkout -- <file>或git restore <file>丟棄修改&…

UniApp 基礎開發第一步:HBuilderX 安裝與環境配置

UniApp 是一個基于 Vue.js 的跨平臺開發框架&#xff0c;支持快速構建小程序、H5、App 等應用。作為開發的第一步&#xff0c;正確安裝和配置 HBuilderX&#xff08;官方推薦的 IDE&#xff09;是至關重要的。下面我將以清晰步驟引導您完成整個過程&#xff0c;確保環境可用。整…

華為云Stack Deploy安裝(VMware workstation物理部署)

1.1 華為云Stack Deploy安裝(VMware workstation物理部署) 步驟 1 安裝軟件及環境準備 HUAWEI_CLOUD_Stack_Deploy_8.1.1-X86_64.iso HCSD安裝鏡像 VMware workstation軟件 VirtualBox安裝包 步驟2 修改VMware workstation網絡模式 打開VMware workstation軟件,點“編輯”…

安全等保復習筆記

信息安全概述1.2 信息安全的脆弱性及常見安全攻擊 ? 網絡環境的開放性物理層--物理攻擊 ? 物理設備破壞 ? 指攻擊者直接破壞網絡的各種物理設施&#xff0c;比如服務器設施&#xff0c;或者網絡的傳輸通信設施等 ? 設備破壞攻擊的目的主要是為了中斷網絡服務 ? 物理設備竊…