首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Git显示每个文件中每个作者的代码行

要在Git中显示每个文件中每个作者的代码行,您可以使用以下命令:

代码语言:javascript
复制
bashgit ls-files | xargs -I{} git blame --line-porcelain {} | awk -F '^[^ ]+ [^ ]+ [^ ]+ ' '/^author / {author=$2} /^[0-9]/ {print FILENAME, $1, author}' | sort -k3,3 -k1,1 -k2,2n

这个命令的工作原理如下:

  1. git ls-files:列出仓库中的所有文件。
  2. xargs -I{} git blame --line-porcelain {}:对每个文件执行git blame命令,使用--line-porcelain选项以易解析的格式输出信息。
  3. awk -F '^[^ ]+ [^ ]+ [^ ]+ ' '/^author / {author=$2} /^[0-9]/ {print FILENAME, $1, author}':使用awk处理git blame的输出,提取文件名、行号和作者。
  4. sort -k3,3 -k1,1 -k2,2n:对输出进行排序,首先按作者(第三列),然后按文件名(第一列),最后按行号(第二列)。

这个命令的输出将显示每个文件中每个作者的代码行,格式如下:

代码语言:javascript
复制
文件名 行号 作者

请注意,这个命令可能需要一些时间来处理大型仓库。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Geopandas 一行代码算出每个省的面积

当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端运行命令安装依赖模块,多舒服的一件事啊:Python 编程的最好搭档—VSCode 详细指南。...因此在本教程中,我只推荐使用conda安装geopandas: conda install geopandas 一行语句即可完成安装。...3.绘制并算出每个省的面积 此外,它最大的亮点是可以通过 Fiona(底层实现,用户不需要管),读取比如ESRI shapefile(一种用于存储地理要素的几何位置和属性信息的非拓扑简单格式)。...如代码所示,通过read_file你可以读取shx、gpkg、geojson等数据。...读取出来的图形如下: 同样,这个shapefile是省级行政区的,每一个省级行政区都被划分为一个区块,因此可以一行语句算出每个省级行政区所占面积: print(maps.area) # 0 4.156054e

1.4K20
  • 每日一问_01_Python统计文件中每个单词出现的次数

    ,统计一个文件中每个单词出现的次数。...考察点: 文件操作、字符串处理、字典操作、循环语句、统计算法 问题分析和解答 问题分析: 首先,我们需要读取文件的内容。 接下来,我们将文件内容分割成单词。 然后,我们需要统计每个单词出现的次数。...(): # output_file.write(f'{word}: {count}\n') 代码解析: 首先,我们打开文件 'file.txt' 并读取其内容存储在变量 text 中。...遍历单词列表,去除单词中的标点符号(如有需要可以将单词转换为小写),以确保统计的准确性。 统计单词出现的次数并更新 word_count 字典。...最后,遍历 word_count 字典并输出每个单词的出现次数。 拓展分享: 这个例子展示了如何使用 Python 处理文本文件并统计单词出现的次数。

    52140

    Python——文本文件score.txt,该文件中存储了某个学期某班级中每个人所有课程的成绩

    ''' 有如下内容形式的文本文件score.txt,该文件中存储了某个学期某班级中每个人所有课程的成绩。...电子技术基础 63 马云 男 Python程序设计 68 黄蓉 女 英语 90 黄蓉 女 电子技术基础 80 黄蓉 女 Python程序设计 65 要求编写程序,统计: (1)该班女生的平均成绩...、男生的平均成绩; (2)该班《Python程序设计》课程的平均成绩。...:{0} \n女生平均成绩为:{1}".format(sum_male / len(lis1), sum_female / len(lis2))) print("该班Python程序设计的平均成绩为:...:72.66666666666667 女生平均成绩为:78.33333333333333 该班Python程序设计的平均成绩为: 73.66666666666667

    87920

    Python——文本文件score.txt,该文件中存储了某个学期某班级中每个人所有课程的成绩。

    ''' 有如下内容形式的文本文件score.txt,该文件中存储了某个学期某班级中每个人所有课程的成绩。...电子技术基础 63 马云 男 Python程序设计 68 黄蓉 女 英语 90 黄蓉 女 电子技术基础 80 黄蓉 女 Python程序设计 65 要求编写程序,统计: (1)该班女生的平均成绩...、男生的平均成绩; (2)该班《Python程序设计》课程的平均成绩。...:{0} \n女生平均成绩为:{1}".format(sum_male / len(lis1), sum_female / len(lis2))) print("该班Python程序设计的平均成绩为:...:72.66666666666667 女生平均成绩为:78.33333333333333 该班Python程序设计的平均成绩为: 73.66666666666667

    1.4K20

    开源中国推荐:python-office自动化办公,每个功能只需一行代码,做到了真正的开箱即用。

    而且每个功能只需一行代码,不需要小白用户学习 Python 知识,做到了真正的开箱即用。 特点 一键搭建所有 Python + 自动化办公的编程环境。...使用一行代码解决大部分自动化办公的问题,不需要小白学习 Python 知识 贴合职场办公需求 极简编程,学习成本极低,工作效率提升显著 “功能持续更新中,提交你的功能需求/参与项目开发,联系开发者微信...使用一行代码解决大部分自动化办公的问题,不需要小白学习 Python 知识 贴合职场办公需求 极简编程,学习成本极低,工作效率提升 3、下载和使用 视频介绍官网发布:python-office库 | 专为...Python自动化办公而生,一行代码提高办公效率 安装这个库之前,你的电脑上,需要有python环境 没有的同学,请移步这个6分钟的安装视频来,手把手带你搭建Python环境 安装好后,打开pycharm...PDF 加水印:代码 合并2个PDF:代码 PDF转Word:代码 PPT PPT 批量转成 PDF:代码 Image 图片加水印:代码 Files 批量重命名 文件/文件夹:代码 Video 从视频里提取音频

    1.4K10

    零代码编程:用ChatGPT批量删除Excel文件中的行

    文件夹中有上百个Excel文件,每个文件中都有如下所示的两行,要进行批量删除。...在ChatGPT中输入提示词: 你是一个Python编程专家,要完成一个处理Excel文件内容的任务,具体步骤如下: 打开F盘的文件夹:北交所上市公司全部发明专利; 读取文件夹中所有的xls文件; 删除所有...xls文件中的第1行和第2行; 注意:每一步都要输出信息 ChatGPT返回Python代码如下: import os import pandas as pd # 定义文件夹路径 folder_path...Excel文件 df = pd.read_excel(file_path, header=None) # 删除第1行和第2行 df.drop([0, 1], inplace=True) # 重新保存Excel...运行程序,成功,可以看到第1行和第2行已经被删除:

    10910

    如何在大型代码仓库中删掉 6w 行废弃的文件和 exports?

    作者:ssh,字节跳动 Web Infra 团队成员 本文是我最近在公司内部写的废弃代码删除工具的一篇思考总结,目前在多个项目中已经删除约 6w 行代码。...无用文件删除 之前基于 webpack-deadcode-plugin 做了一版无用代码删除,但是在实际使用的过程中,发现一些问题。...default"], "src/components/B": ["TestComponentB"] }, "exports": ["TestComponentA"] } 根据上述信息来分析出每个文件中每个变量的使用次数...到此思路也就有了,把所有文件中的 imports 信息取一个合集,然后从第一步的文件集合中找出未出现在 imports 里的文件即可。...支持 Monorepo 原项目只考虑到了单个项目和单个 tsconfig 的处理,而如今 monorepo 已经非常流行了,monorepo 中每个项目都有自己的 tsconfig,形成一个自己的 project

    4.7K20

    2023-05-09:石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 。 有 n 块石子排成一排。 每个玩家的回合中,可以从行中 移除 最左边的石头或

    每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头,并获得与该行中剩余石头值之 和 相等的得分。当没有石头可移除时,得分较高者获胜。...因为是先手行动,所以先手最终能够获得的得分为这两种情况中的较大值。当前轮到后手操作,后手只能在剩余的石头中选择一个最优的石头让先手取走,并计算自己的得分。...即后手能够获得的最大得分为sumLR - stonesi + dpsL+1或sumLR - stonesj + dpsL中的较大值。...计算dpf和dps数组的过程需要遍历所有的状态,其中每个状态需要O(1)的时间进行计算,因此总时间复杂度为$O(n^2)$。...时间复杂度为$O(n^2)$,空间复杂度为$O(n^2)$,其中n是石头的数量。计算dp数组的过程需要遍历所有的状态,其中每个状态需要O(1)的时间进行计算,因此总时间复杂度为$O(n^2)$。

    53100

    How to use Git

    当你在代码编辑器中打开项目文件时,你是在工作目录中处理文件 检出(Checkout) 检出是指将仓库中的内容复制到工作目录下。...可以将暂存区看做准备工作台,Git 将在此区域获取下个 commit。暂存索引中的文件是准备添加到仓库中的文件。 SHA SHA 是每个 commit 的 ID 编号。...作者 - git log 输出结果显示了每个 commit 的作者!...这 85 行显示在下方 在 commit 中实际进行的更改 用红色标示并以减号 (-) 开头的行是位于文件- 原始版本中,但是被 commit 删除的行 用绿色标示并以加号 (+) 开头的行是 commit...git commit 小结 此命令: 将打开配置中指定的代码编辑器 请参阅第一节课中的 git 配置流程,了解如何配置编辑器) 在代码编辑器中: 必须提供提交说明 以 # 开头的行是注释,将不会被记录

    1.1K10

    Git 系列教程(6)- 查看 commit 提交历史

    可以获取到的信息 不传入任何参数的默认情况下,git log 会按时间先后顺序列出所有的提交,最近的更新排在最上面 会列出每个提交的 SHA-1 校验和、作者的名字和电子邮件地址、提交时间以及提交说明...每次提交的下面列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了 --pretty 可以使用不同格式来显示提交历史,有一些内建的子选项供你使用。 ?...--pretty=oneline 将每个提交放在一行显示,在浏览大量的提交时非常有用 ?...--name-status 显示新增、修改、删除的文件清单。 --abbrev-commit 仅显示 SHA-1 校验和所有 40 个字符中的前几个字符。...-- 仅显示某些文件或目录的历史提交,-- 文件名/目录名 --no-merges 不显示合并提交的历史记录 来看一个实际的例子,如果要在 Git 源码库中查看 Junio Hamano 在 2008

    1.9K30

    git 常用指令与简单规范

    提交记录查看 git log 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者、提交日期、和提交说明 如果记录过多,则按Page Up、Page Down、↓、↑来控制显示...-s # 返回每个作者的贡献次数 git shortlog -sn # 返回每个作者的贡献次数按从多到少排序 git shortlog -sne # 返回每个作者的贡献次数带邮箱按从多到少排序...# 加上这两个参数之后就可以看到每个用户中的提交次数以及排名情况: # 更详细的参数说明: -c, --committer group by committer rather than...仅提供提交计数(精简打印数据) -e, --email show the email address of each author 显示每个作者的电子邮件地址...在这个过程中,多余的记录被移除了。

    27320

    Git 查看提交历史

    当进行代码审查,或者快速浏览某个搭档提交的 commit 的变化的时候,这个参数就非常有用了。 某些时候,单词层面的对比,比行层面的对比,更加容易观察。Git 提供了 --word-diff选项。...另外,git log 还提供了许多摘要选项可以用,比如 --stat,仅显示简要的增改行数统计: 每个提交都列出了修改过的文件,以及其中添加和移除的行数,并在最后列出所有增减行数小计。...还有个常用的 --pretty 选项,可以指定使用完全不同于默认格式的方式展示提交历史。比如用 oneline 将每个提交放在一行显示,这在提交数很大时非常有用。...还可以给出若干搜索条件,列出符合的提交。用 --author 选项显示指定作者的提交,用 --grep 选项搜索提交说明中的关键字。...来看一个实际的例子,如果要查看 Git 仓库中,2008 年 10 月期间,Junio Hamano 提交的但未合并的测试脚本(位于项目的 t/ 目录下的文件),可以用下面的查询命令: $ git log

    1.2K10
    领券