Git: How to diff two different files in different branches?

ID : 20306

viewed : 19

Tags : gitgit-diffgit

Top 5 Answer for Git: How to diff two different files in different branches?

vote vote

91

git diff branch1:full/path/to/foo.txt branch2:full/path/to/foo-another.txt 

You can also use relative paths:

git diff branch1:./relative/path/to/foo.txt branch2:./relative/path/to/foo-another.txt 
vote vote

87

Sidenote: no need for full paths, you can start with ./ for relative paths. It can be handy sometimes.

git diff branch1:./relative/path/to/foo.txt branch2:./relative/path/to/foo-another.txt 
vote vote

72

Off-topic answer -- see comments

Just to add it for I find it a very straightforward syntax :

git diff <branch1> <branch2> <filepath> 

Also works with relative refs like for example :

# compare the previous committed state from HEAD with the state branch1 was 3 commits ago git diff HEAD^ <branch1>~3 <filepath> 
vote vote

68

There are many ways to compare files from two diferents branchs. For example:

  • If the name is the same or different:

     git diff branch1:file branch2:file 

    Example:

     git diff branch1:full/path/to/foo.txt branch2:full/path/to/foo-another.txt 
  • Only if the name is the same and you want to compare your current working directory to some branch:

    git diff ..someBranch path/to/file 

    Example:

    git diff ..branch2 full/path/to/foo.txt 

    In this example you are comparing the file from your actual branch to the file in the master branch.

You can check this response:

Compare a file from two different branchs in Git

vote vote

57

You can specify a start and range for git diff to be applied to. The range is indicated with the .. notation.

branch1=somebranch branch2=someotherbranch git diff ${branch1}..${branch2} -- file_path 

Top 3 video Explaining Git: How to diff two different files in different branches?

Related QUESTION?