小编rjt*_*urn的帖子

git 报告移动了行

我想跟踪排除移动行的添加和删除的数量。因此,如果一次提交有 10 个添加、5 个删除和 3 个移动行,那么我有 7 个添加、2 个删除(不包括移动行)。10 和 5 由以下代码给出。我需要生成 3 (我只需要弱移动行检测,例如,在同一提交中同时从一个位置删除并添加到另一个位置的任何行)。

我正在使用以下命令来跟踪 git 存储库中重要文件的添加和删除次数。

git log --since=2014-08-01 --date=short --pretty=format:"%ad%x09" --numstat -- file.tex
Run Code Online (Sandbox Code Playgroud)

这会产生以下结果,其中第一个数字是添加,第二个数字是删除。

2014-08-19      
72      0       file.tex

2014-08-19      
211     290     file.tex

...
Run Code Online (Sandbox Code Playgroud)

我想添加第三列,称之为移动行。可以通过在每次提交的循环中执行以下操作来找到每次提交移动的行:

  1. Grep 更改以 + 或 - 开头的行
  2. 条带前导 + 或 -
  3. sort
  4. uniq -d
  5. wc -l

有没有一种快速而优雅的方法来运行这个伪代码,或者我只需要转储和解析一堆完整的 git diff 来获得我需要的东西?

bash git

5
推荐指数
1
解决办法
287
查看次数

标签 统计

bash ×1

git ×1