52

Git's pull output has been explained here fairly well. In spite of this I'm still unsure exactly what the text graph relates to.

For example:

git diff --stat master HEAD^

Outputs (truncated):

Site/index.php | 118 ++--

While the number of lines modified is clearly displayed as 118, the text graph is a little harder to interpret.

Could this relate to the ratio of added and removed lines?

Community
  • 1
  • 1
LukasWildas
  • 539
  • 1
  • 4
  • 5
  • 118 ++-- indicates that a total of 118 changes were made. ++-- (2+, 2- , or approximately 50%,50%) shows that roughly 50% of these 118 changes were new lines (50% of 118 is 59 new lines) and roughly 50% of these 119 changes were lines removed. If it was, for example, 118 +++--, it would suggest that circa 60% of the changes were new lines (totaling 60% of 118 changes is 70 new line). Or, as last example, 118 ++++-, it would suggest that circa 80% of the 118 changes were new lines (totaling 80% of 118 changes is 94 new lines). – Arthur Zennig Dec 22 '22 at 13:22

3 Answers3

37

Yes it's the ratio of added and removed lines.

See also:

man diffstat
Patrick B.
  • 11,773
  • 8
  • 58
  • 101
33
git diff --numstat "@{1 day ago}"

Parameters:

  • diff = Show diff
  • --numstat = show the number of lines inserted and removed
  • @{1 day ago} = Period.

Output

0   1   WebContent/WEB-INF/tags/Grid.tag
38  30  ant/build.xml
  • Column 1 (containing 0 38) = inserted
  • Column 2 (containing 1 30) = removed

PS: Columns are separated by tab (\t).

Rory O'Kane
  • 29,210
  • 11
  • 96
  • 131
Edgard Leal
  • 2,592
  • 26
  • 30
15

As I answered here:

It supposed to reflect the amount of changes (in lines) of each file listed.
Plus signs for additions, minuses for deletions.

The 118 gives the amount of changed lines, and the - / + gives you the proportion of deletions/additions.
When the amount of changes can fit a line you'll get '+' per addition, '-' per deletion;
Otherwise, this is an approximation, e.g.

CHANGES.txt     |   47 +++++++++++++++++++++++++++++++++
make-release.py |   77 +++++++++++++++++++++++++++++++++++++++----------------
2 files changed, 102 insertions(+), 22 deletions(-)

On CHANGES.txt since you can see that there are no '-', and since 47 '+' are a lot you have a proportionate amount of them (i.e. 100%).
On make-release.py you'll see x39 '+' standing for 55 additions and x16 '-' standing for 22 deletions.
Exactly as their proportion, and just the amount to fit output screen.

The amount of signs per line the a GCD multiple that fits the line width.

Hope that helps.

Community
  • 1
  • 1
Ofir Farchy
  • 7,657
  • 7
  • 38
  • 58
  • 2
    I know it has been a bit but do you have any idea why one might not show the total when there is room? I have a line that shows `| 3 -` but I also have a line that shows `| 55 +++----` so there is room for three `-`s but it only showed 1 – Marie Jul 20 '18 at 12:26
  • 1
    It looks like if all the changes in the diff can fit at 1:1 scale, they will be printed at 1:1. But if any file's amount of changes is too long for the line, all of them will be scaled proportionately. – Gordon Mar 27 '20 at 05:01