History of a file
As described in the Whole-tree commits section at the beginning of this chapter, in Git revisions are about the state of the whole project as one single entity.
In many cases, especially with larger projects, we are interested only in the history of a single file, or in the history limited to the changes in the given directory (in the given subsystem).
Path limiting
To examine the history of a single file, you can simply use use git log <pathname>
. Git will then only show all those revisions that affected the pathname (a file or a directory) given, which means those revisions where there was a change to the given file, or a change to a file inside the given subdirectory.
Tip
Disambiguation between branch names and path names
Git usually guesses what you meant by writing git log foo
; did you meant to ask for the history of branch foo
(line of development), or for the history of the file foo
. However, sometimes Git can get confused. To prevent confusion between pathnames...