Hi Philip. I have git 2.38.0.windows.1 on windows 10. I have then changed again C2.java, and made only one git add, and a commit > git add C2.java > git commit -m "commit2" [master 8ec0c2f] commit2 1 file changed, 1 insertion(+), 1 deletion(-) Then I displayed the contents of both commits, and seen that it is pretty much the same: D:\gittest>git show --pretty="" --name-only 91ef45d C2.java D:\gittest>git show --pretty="" --name-only 8ec0c2f C2.java If there is any difference in the files, probably it is under the hood. -Angelo On Thu, 27 Oct 2022 at 18:16, Philip Oakley <philipoakley@iee.email> wrote: > > Hi Angelo, please use 'reply all' so others can participate. > Also, in-line replies are preferred. > > On 27/10/2022 16:28, Angelo Borsotti wrote: > > Hi, > > > > I have tested this in the following way: I have two files: C1.java and C2.java > > > > > git status > > On branch master > > nothing added to commit > > > ... edit C2.java > > > git status > > On branch master > > Changes not staged for commit: > > (use "git add <file>..." to update what will be committed) > > (use "git restore <file>..." to discard changes in working directory) > > modified: C2.java > > > git add C1.java > > > git add C2.java > > > git commit -m "commit2" > > D:\gittest>git commit -m "commit1" > > [master 91ef45d] commit1 > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > In commit1 there is only one file, which is C2.java. > > It does say "1 file changed", which is true. > What it fails to mention is all the other files that are included within > the commit, but are unchanged. > > Maybe have a look at > https://git-scm.com/docs/git-ls-tree#Documentation/git-ls-tree.txt---name-status, > probably with the -r option (check the command's description) > > What Git version & OS are you on? > > This is a useful feature: one can stage all its files without > > bothering to remember > > which one had been changed, and then make a commit, and place the commands > > to do it in a script to be used each time a new commit is needed. > > > > -Angelo > > ... > > > > On Thu, 27 Oct 2022 at 17:10, Philip Oakley <philipoakley@iee.email> wrote: > >> Hi, > >> On 27/10/2022 12:53, Angelo Borsotti wrote: > >>> Hello, > >>> > >>> the reference manual for the "git add" command does not > >>> specify what that command does when applied to an > >>> unmodified file. > >> I presume that this file is already tracked.. > >>> By testing this, I have seen that it does not add the file > >>> to the index, > >> How was this tested? > >> > >> If you have no changes, thaen the status diff will have no mention of > >> that file. > >> Perhaps change the tracked mode bits to see if that is noticed (note > >> though, not all mode bits are tracked..) > >>> and consequently it does not add it when a > >>> subsequent commit is done. > >> I suspect this is a subtle mental model misunderstanding about the > >> distinction between a commit as a snapshot, and a commit being reported > >> as the diff relative to its parent (and here, there is none, if the file > >> is unmodified) > >>> I think that this should be documented. > >> A test script with sample output would help here. > >> -- > >> Philip > >> > >> >