Checking the difference between branches can show valuable information before merging.
A regular Git diff between two branches will show you all the information, but it can be rather exhausting to sit and look at; maybe you are only interested in one file. Thus, you don't need the long unified diff.
To start with, we decide on two branches, tags, or commits we want to see the diff between. Then, to list files that have changed between these branches, you can use the --name-only
flag.
Perform the following steps to see the difference between the branches:
origin/stable-3.1
with origin/stable-3.2
branch:$ git diff --name-only origin/stable-3.1 origin/stable-3.2 org.eclipse.jgit/src/org/eclipse/jgit/transport/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackFetch More output..
git diff [options] <commit> <commit> <path>
. Then, we can diff what we care about while looking into the differences between branches. This is very useful if you are responsible for a subset of the source code, and you wish to diff that area only.--diff-filter=DA
and --name-status
options. The --name-status
option will only show the filenames and the type of change. The --diff-filter=DA
option will only show the deleted and added files:$ git diff --name-status --diff-filter=DA origin/stable-3.1 origin/stable-3.2 D org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/Sam A org.eclipse.jgit.packaging/org.eclipse.jgit.target/jg More output..
origin/stable-3.1
to origin/stable-3.2
:$ git diff --name-status --diff-filter=DA origin/stable-3.2 origin/stable-3.1 A org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/Sam D org.eclipse.jgit.packaging/org.eclipse.jgit.target/jg More output..
Note that the indication letters A
and D
switched places because now we want to know what happens if we move from origin/stable-3.2
to origin/stable-3.1
.
There are more options in the help files for Git. Just run git merge --help
or git branch --help
to see what other options you have. The option I have used and the examples shown are all examples that have given me the edge while working with Git as a release manager and Git mentor at Nokia.