当前位置:   article > 正文

git blame查看每行代码的提交者、查看指定代码的提交者。_vs code插件在文件行上显示提交者

vs code插件在文件行上显示提交者

VSCode里有个叫Git Blame的插件,当你的光标放在某行代码上时,左下角会显示该行代码是由谁贡献的和贡献时间。

当然这个功能Git本身也是包含的,如果你要查看文件的每个部分是谁修改的,直接在Git bash里输入:git blame [filename]

会显示整个文件的每一行的详细修改信息:包括SHA-1串、日期和作者。

例如下边内容:

  1. [Live@Live-PC][ /fortunes/data ] (master)
  2. $ git blame song100 # 输入的命令在这里哦
  3. 15108174 (Duke 2016-11-14 20:59:20 +0800 1) 题目:《塞上》
  4. 15108174 (Duke 2016-11-14 20:59:20 +0800 2) 作者:柳开(946-999)
  5. 15108174 (Duke 2016-11-14 20:59:20 +0800 3) 鸣[骨交]直上一千尺,天静无风声更干。
  6. 15108174 (Duke 2016-11-14 20:59:20 +0800 4) 碧眼胡儿三百骑,尽提金勒向云看。
  7. 15108174 (Duke 2016-11-14 20:59:20 +0800 5) %
  8. 15108174 (Duke 2016-11-14 20:59:20 +0800 6) 题目:《寒食》
  9. 15108174 (Duke 2016-11-14 20:59:20 +0800 7) 作者:王禹偁(954-1001)
  10. 15108174 (Duke 2016-11-14 20:59:20 +0800 8) 今年寒食在商山,山里风光亦可怜:
  11. 15108174 (Duke 2016-11-14 20:59:20 +0800 9) 稚子就花拈蛱蝶,人家依树系秋千。
  12. 15108174 (Duke 2016-11-14 20:59:20 +0800 10) 郊原晓绿初经雨,巷陌春阴乍禁烟。
  13. 15108174 (Duke 2016-11-14 20:59:20 +0800 11) 副使官闲莫惆怅,酒钱犹有撰碑钱。
  14. 15108174 (Duke 2016-11-14 20:59:20 +0800 12) %
  15. ################################### 以下省略 ###################################

1、具体参数

  1. git blame [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-e] [-p] [-w] [--incremental]
  2. [-L <range>] [-S <revs-file>] [-M] [-C] [-C] [-C] [--since=<date>]
  3. [--progress] [--abbrev=<n>] [<rev> | --contents <file> | --reverse <rev>..<rev>]
  4. [--] <file>

2、实用参数

-L <start>,<end>范围。<start>为开始位置,<end>为结束位置,可以是数字也可以是正则表达式。可以组合显示
-b对边界提交显示空白的SHA-1(连续的SHA-1中间显示空白)。
-l 显示长SHA-1。
--show-stats输出末尾包括其他统计信息。
-p以专为机器使用而设计的格式显示。
--score-debug包括与文件之间的行移动有关的调试信息和文件内的行移动。
-e, --show-email显示邮箱地址。
-w比较父版本和子版本时,请忽略空格以查找行的来源。

例一、查看指定行

查看第 6 行到第 11 行,如下:

  1. [Live@Live-PC][ /fortunes/data ] (master)
  2. $ git blame -L 6,11 song100 # 输入的命令在这里哦
  3. 15108174 (Duke 2016-11-14 20:59:20 +0800 6) 题目:《寒食》
  4. 15108174 (Duke 2016-11-14 20:59:20 +0800 7) 作者:王禹偁(954-1001)
  5. 15108174 (Duke 2016-11-14 20:59:20 +0800 8) 今年寒食在商山,山里风光亦可怜:
  6. 15108174 (Duke 2016-11-14 20:59:20 +0800 9) 稚子就花拈蛱蝶,人家依树系秋千。
  7. 15108174 (Duke 2016-11-14 20:59:20 +0800 10) 郊原晓绿初经雨,巷陌春阴乍禁烟。
  8. 15108174 (Duke 2016-11-14 20:59:20 +0800 11) 副使官闲莫惆怅,酒钱犹有撰碑钱。

例二、从指定行开始显示多少行

+:为往下。

- :为往上。

从第6行开始显示5行(总共显示5行):

  1. [Live@Live-PC][ /fortunes/data ] (master)
  2. $ git blame -L 6,+5 song100 # 输入的命令在这里哦
  3. 15108174 (Duke 2016-11-14 20:59:20 +0800 6) 题目:《寒食》
  4. 15108174 (Duke 2016-11-14 20:59:20 +0800 7) 作者:王禹偁(954-1001)
  5. 15108174 (Duke 2016-11-14 20:59:20 +0800 8) 今年寒食在商山,山里风光亦可怜:
  6. 15108174 (Duke 2016-11-14 20:59:20 +0800 9) 稚子就花拈蛱蝶,人家依树系秋千。
  7. 15108174 (Duke 2016-11-14 20:59:20 +0800 10) 郊原晓绿初经雨,巷陌春阴乍禁烟。

例三、正则表达式

从“int main”开头的行到“return 0;”结尾的行:

  1. [Live@Live-PC /Hello ] (master)
  2. $ git blame -L '/^int main/','/return 0;$/' Hello.cpp # 输入的命令在这里哦
  3. 59575828 (Duke 2019-12-25 18:49:55 +0800 3) int main(void)
  4. ^3dedd1c (Duke 2019-12-25 18:46:54 +0800 4) {
  5. 59575828 (Duke 2019-12-25 18:49:55 +0800 5) printf("Hello World!\n");
  6. ^3dedd1c (Duke 2019-12-25 18:46:54 +0800 6) return 0;

提示:我这用Git Bash(git version 2.24.1.windows.2)没法正常显示,而使用Cygwin(git version 2.21.0)可正常显示。

例四、组合

  1. [Live@Live-PC /Hello ] (master)
  2. $ git blame -L '/^int main/,+5' Hello.cpp # 输入的命令在这里哦
  3. 59575828 (Duke 2019-12-25 18:49:55 +0800 3) int main(void)
  4. ^3dedd1c (Duke 2019-12-25 18:46:54 +0800 4) {
  5. 59575828 (Duke 2019-12-25 18:49:55 +0800 5) printf("Hello World!\n");
  6. ^3dedd1c (Duke 2019-12-25 18:46:54 +0800 6) return 0;
  7. ^3dedd1c (Duke 2019-12-25 18:46:54 +0800 7) }

例五、其它方式

  1. git blame v2.6.18.. -- history.cpp # 按Tag查看
  2. git blame --since=3.weeks -- history.cpp # 查看3周前

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/619915
推荐阅读
相关标签
  

闽ICP备14008679号