Как показать количество строк, добавленных и удаленных для каждого файла в git log и git diff? - PullRequest
2 голосов
/ 03 марта 2020

Если я наберу git log <commit-id> --stat или git diff с --stat, я получу что-то вроде:

myproj/src/__main__.py                             |   1 +
myproj/{ => src}/utils.py                          |   0
myproj/{ => src}/web.py                            |  31 ++++-
3 files changed, 29 insertions(+), 3 deletions(-)

Число рядом с каждым файлом: number_of_inserts + number_of_deletes. Это не то, что я хочу. Я хочу знать количество строк, добавленных и удаленных для каждого файла (например, +28 -3 вместо 31).

  • Я знаю, что мог бы использовать --numstat вместо --stat, но --numstat не будет производить гистограмму.
  • Я также знаю, что могу использовать diffstat. Например, git diff <commit-id> | diffstat -f4 -C:

    myproj/src/__main__.py                             |   1    1    0 +
    myproj/src/web.py                                  |  31   28    3 ++++-
    2 files changed, 29 insertions(+), 3 deletions(-)
    

    Но здесь я теряю информацию о перемещениях / переименованиях файлов (например, myproj/{ => src}/web.py).

Так как я могу получить вывод похож на --stat, но с информацией о количестве добавленных строк и количестве удаленных строк для каждого файла?

1 Ответ

0 голосов
/ 20 марта 2020

git log --numstat --stat --oneline выводит следующее:

6012d9a9fa69 docs: kvm: Convert timekeeping.txt to ReST format
1       0       Documentation/virt/kvm/index.rst
128     95      Documentation/virt/kvm/{timekeeping.txt => timekeeping.rst}
 Documentation/virt/kvm/index.rst                            |   1 +
 Documentation/virt/kvm/{timekeeping.txt => timekeeping.rst} | 223 +++++++++++++++++++++++++++++++++++++++++++++----------------------------------
 2 files changed, 129 insertions(+), 95 deletions(-)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...