History of a file
As described in the Whole-tree commits section at the beginning of the previous chapter, 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 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 git log <pathname>
. Git will then only show all those revisions that affected the given pathname (a file or a directory), which means those revisions where there was a change to the given file or a change to a file inside the given subdirectory.
Disambiguation between branch names and path names
Git usually guesses what you mean by writing git log foo
; did you mean to ask for the history of the foo
branch (the line of development), or for the history of the foo
file? However, sometimes, Git can get confused. To prevent confusion...