Py学习  »  Git

如何用git计算换行数?

Rui Zhou • 5 年前 • 1367 次点击  

当我使用 git log - -stat ,我可以得到“文件更改、添加和删除”。但是,我想计算有多少行改变了。例如:

git log --stat
-  Print “hello world”;
-  int a;
-  int b;
-  String name;
-  print "a"
+  Print “Hello, World!”
1 file changed, 1 addition, 5 deletions.

它修改了1个位置,但是git只告诉我有1个添加和5个删除。我想得到:

git log --stat
-  Print “hello world”;
-  int a;
-  int b;
-  String name;
-  print "a"
+  Print “Hello, World!”
1 file changed, 0 addition, 4 deletions, 1 modify

如何使用git自动计算修改的行数?

我试过了 git log -p ,显示如下:

git log -p
-  Print “hello world”;
-  int a;
-  int b;
-  String name;
-  print "a"
+  Print “Hello, World!”

所以,我需要逐一检查。git有计算更改行的方法吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40175
 
1367 次点击  
文章 [ 1 ]  |  最新文章 5 年前
torek
Reply   •   1 楼
torek    6 年前

就git的内部diff算法而言 变化 . 要么在那儿,要么不在那儿。如果它不在,以前也在,它就被删除了。如果它以前不存在,现在也不存在,那么它是被插入的。如果它曾经存在,现在仍然存在,它是不变的。

还有其他算法,以及git的后处理器 diff 输出,它将尝试在已删除/添加的节中查找“相似”行,并将它们显示为行内的更改。但git本身并没有做到这一点。

(原因是为了提高性能,git将每一行视为一个符号。符号本身可能会忽略空白或有一些其他特殊处理。您还可以让git将每个“单词”视为一个符号,以便它一次比较一个单词,并生成一个单词一个单词的diff。所有这些都输入到git内的四个差分引擎之一中。有关更多信息,请参阅《我的未完成》第3章的最后一节 book )