View a file in a different Git branch without changing branches

Solution 1:

This should work:

git show branch:file

Where branch can be any ref (branch, tag, HEAD, ...) and file is the full path of the file. To export it you could use

git show branch:file > exported_file

You should also look at VonC's answers to some related questions:

  • How to retrieve a single file from specific revision in Git?
  • How to get just one file from another branch

UPDATE 2015-01-19:

Nowadays you can use relative paths with git show a1b35:./file.txt.

Solution 2:

git show somebranch:path/to/your/file

you can also do multiple files and have them concatenated:

git show branchA~10:fileA branchB^^:fileB

You do not have to provide the full path to the file, relative paths are acceptable e.g.:

git show branchA~10:../src/hello.c

If you want to get the file in the local directory (revert just one file) you can checkout:

git checkout somebranch^^^ -- path/to/file