Git统计代码量和常用命令
一、Git统计代码量
1.根据用户名时间段统计
git log --author="username" --since=2018-01-01 --until=2019-12-31 --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
2.查看提交者排名前N位
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5
3.提交数统计
git log --oneline | wc -l
4.根据用户名统计
git log --author="username" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
5.根据时间段统计
git log --since=2020-01-01 --until=2021-02-04 --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
6.统计每个人的增删行数
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s ", add, subs, loc }' -; done
7.贡献者统计
git log --pretty='%aN' | sort -u | wc -l
8.根据时间段排除文件夹统计
git log --since=2021-01-28 --until=2021-02-03 --pretty=tformat: --numstat -- . ":(exclude)src/test" | awk '{ add += $1; subs += $2; loc += $1 + $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
-- . ":(exclude)folderName" folderName指src/test文件夹,这里是相对路径
-- . ":(exclude)folderName1" ":(exclude)folderName2" 排除多个文件夹
-- . ":(exclude)folderName"也 可以用在其他的统计中;--前只能有一个空格,有多个空格识别不了
9.根据指定文件夹统计
git log --since=2021-06-24 --until=2021-06-30 --pretty=tformat: --numstat | grep src/test | gawk '{ add += $1; subs += $2; loc += $1 + $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
src/test 指定src的test目录下
注意:增删也算统计的代码量就修改loc += $1 + $2
10.代码存量
find . -name *\.java -exec wc -l {} \; | awk '{s+=$1}END{print s}'
二、Git常用命令
1. 克隆一个git项目到本地,将git项目拉取到本地
git clone 项目地址
2.查看文件状态,列出当前目录没有被git管理,以及被修改过还未提交的文件
git status
3.将我们提交的文件添加到索引库中(添加到缓冲区),*可以是路径也可以是.符号,git add . 代表将当前目录下的所有文件都添加到索引库中,
如果指定路径则代表将制定路径的文件添加到索引库中。
git add *
4.将文件推送到本地仓库中,-m 后可以填写此次提交的备注如git commit -m "提交删除功能代码",那么在git项目中的提交记录里面就能看见你的推送备注。
这一步仅仅是放在缓冲区中,还未真正提交代码
git commit -m "备注"
5.这一步才是推送代码推送时需要跟分支名,表示需要将代码推送至某个分支.如git push origin dev表示你要讲代码推送至dev分支
git push origin 分支名
6.更新当前分支的代码,获取最新的代码
git pull
7.从当前分支切换至另一个分支
git checkout 分支名
8.当前分支合并其他分支
git merge 分支名
9.提交被忽略的文件
$ git add src/XXX
如果抛出如下异常
The following paths are ignored by one of your .gitignore files:src/XXX
Use -f if you really want to add them.
提示提交的时候,需要加 –f。使用如下命令即可解决:
$ git add -f src/XXX
posted on 2021-02-18 14:47 lovezj9012 阅读(17879) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗