Kann es sein, dass ein Teil der Änderungen schon (oder nicht) gestaged sind? Wenn du git add aufrufst, dann landen die betreffenden Änderungen in der Staging-Area und werden mit git diff nicht mehr angezeigt. Wenn du die gestageten Änderungen sehen willst, musst du git diff --cached aufrufen.
Du kannst sehen, was sich in der Staging-Area befindet, wenn du git status aufrufst. Dort hast du drei Bereiche:
Code:
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: foo.pas
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: bar.pas
Untracked files:
(use "git add <file>..." to include in what will be committed)
bla.pas
foo.dcu
bar.dcu
Der oberste Bereich ist die Staging Area. Das sind die Änderungen, die im Commit landen. Der zweite Bereich sind Änderungen, die nicht in der Staging Area sind (werden bei commit ignoriert). Und ganz unten sind die Dateien, die gar nicht im Index sind (werden auch ignoriert).
Eine Datei kann auch in den ersten beiden Bereichen doppelt auftauchen. Nämlich dann, wenn z.B. noch mal Änderungen an der Datei gemacht wurden,
nachdem git add aufgerufen wurde. Wenn diese Änderungen committet werdten sollen, dann muss noch mal git add aufgerufen werden.