GNU coding standard dogma dictates that: - there shall be ChangeLog files - ChangeLogs contain "what changed" - source code contains "why it changed" or "why it is so" or "why it was" the idea motivating this is that developers read the source, and hence it is the source that should contain the detailed coding history; an the ChangeLog just lets you identify who changed what when. This all goes back to the days before revision control where often the only way to know who did what as through the ChangeLog file. With the introduction of distributed revision control that's less of a problem - change history can be identified by looking through your local copy of the entire repo. This of course begs the question, of should we drop ChangeLog files and rely more on GIT for recording what changed and by whom. The only stickler I know of is being able to properly record changes submitted by A but committed by B.
Re the changes submitted by A but committed by B; if A uses git-format-patch, sends the patch for commit to B, and B git-am's that patch, A will be recorded at that commit.
The ChangeLog file is also included in the release source tar balls.