Posted By: Anonymous
I have a script that works fine in one branch and is broken in another. I want to look at the two versions side-by-side and see what’s different. Are there any ways to do this?
To be clear I’m not looking for a compare tool (I use Beyond Compare). I’m looking for a git diff command that will allow me to compare the master version to my current branch version to see what has changed. I’m not in the middle of a merge or anything. I just want to say something like
git diff mybranch/myfile.cs master/myfile.cs
git diff can show you the difference between two commits:
git diff mybranch master -- myfile.cs
git diff mybranch..master -- myfile.cs
Note you must specify the relative path to the file. So if the file were in the src directory, you’d say
src/myfile.cs instead of
Using the latter syntax, if either side is
HEAD it may be omitted (e.g.
You may also be interested in
git diff docs):
This form is to view the changes on the branch containing and up to the second
<commit>, starting at a common ancestor of both
git diff A...Bis equivalent to
git diff $(git-merge-base A B) B.
In other words, this will give a diff of changes in
master since it diverged from
mybranch (but without new changes since then in
In all cases, the
-- separator before the file name indicates the end of command line flags. This is optional unless Git will get confused if the argument refers to a commit or a file, but including it is not a bad habit to get into. See https://stackoverflow.com/a/13321491/54249 for a few examples.
The same arguments can be passed to
git difftool if you have one configured.