2025-05-22
git
00

Git 代码贡献统计脚本解析

功能概述

这个 Git 命令组合用于统计指定时间段内(2025年5月)所有贡献者的代码变更情况,包括:

  • 每个贡献者新增的代码行数
  • 删除的代码行数
  • 净变更行数(新增-删除)

命令分解

bash
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --since="2025-05-01" --until="2025-05-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 }' -; done
2025-05-22
git
00

什么是 Git Cherry-Pick?

Git cherry-pick 是一个强大的命令,它允许你将某个分支上的特定提交应用到当前分支。与合并(merge)或变基(rebase)不同,cherry-pick 让你可以精确选择需要的提交,而不是引入整个分支的所有更改。

为什么使用 Cherry-Pick?

当你只需要某个分支上的特定功能或修复时

当合并整个分支不合适时

当你想将某个提交应用到多个分支时

当你想在不合并的情况下测试某个特定更改时

使用 Git Cherry-Pick 的步骤

2024-06-04
文件上传
00

在本篇博客中,我将介绍如何使用 Uppy 和阿里云的对象存储服务(OSS)来实现文件上传功能。通过配置 OSS 信息、自定义 Uppy 压缩插件以及使用 Uppy 进行文件上传,您可以轻松地将文件上传到阿里云 OSS,并实现各种操作,如进度跟踪和错误处理。

2023-07-07
git
00

Git子模块是Git版本控制系统中的一种机制,用于将一个Git仓库作为另一个仓库的子目录进行管理。它允许在一个存储库中引用另一个存储库的特定版本。

使用Git子模块可以解决依赖管理的问题,尤其是当一个项目依赖于另一个项目的特定版本时。例如,如果你的项目使用了外部的库或者模块,你可以使用Git子模块来将这些依赖作为子目录包含在你的项目中,并且可以跟踪和管理这些依赖的版本。

要创建一个Git子模块,可以使用以下命令:

git submodule add <repository_url> <path>

其中,repository_url是子模块所在的Git仓库的URL,path是子模块在主存储库中的路径。执行上述命令后,Git会将子模块的相关信息添加到父存储库的.gitmodules文件中,并且将子模块的代码克隆到指定的路径。

2023-07-05
js
00

要将 Blob 对象转换为字符串,可以使用 FileReader 对象。下面是使用 JavaScript 将 Blob 转换为字符串的示例代码:

js
function blobToString(blob) { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.onload = function(event) { const result = event.target.result; resolve(result); }; reader.onerror = function(event) { reject(event.target.error); }; reader.readAsText(blob); }); }