How to Compare Files From Two Different Branches in Git?

To compare files from two different branches in Git, you can use the git diff command. This command allows you to view the differences between two branches or commits. Below are the steps to compare files from two different branches:

Table of Content

  • Using Git Diff
  • Using Git Difftool
  • Checkout the Branches
  • Run the Diff Command
  • View the Differences
  • Optional: View Unified Diff
  • Review and Analyze Changes
  • Conclusion

Using Git Diff

The git diff command is the most direct way to compare changes between branches.

Comparing Entire Branches

To see the differences between two branches (e.g., main and feature-branch):

git diff main..feature-branch

This command shows the changes that would occur if you were to merge feature-branch into main.

Comparing Specific Files

To compare a specific file between two branches:

git diff main..feature-branch -- path/to/file

This shows the differences in the specified file between the two branches.

Using Git Difftool

For a more visual comparison, you can use git difftool, which opens the differences in a diff tool like vimdiff, meld, or any other configured diff tool.

Comparing Entire Branches

git difftool main..feature-branch

Comparing Specific Files

git difftool main..feature-branch -- path/to/file

Checkout the Branches

Start by checking out the two branches you want to compare. If you haven’t already cloned the repository, make sure to do so first.

git checkout branch1
git checkout branch2

Replace branch 1 and branch 2 with the names of the branches you want to compare.

Comparing the Working Directory with Another Branch

If you want to compare the current working directory against another branch:

Comparing Entire Branch

git diff feature-branch

Comparing Specific Files

git diff feature-branch -- path/to/file

Run the Diff Command

Once you have checked out the branches, you can use the git diff command to compare files between the two branches.

git diff branch1 branch2 -- <file_path>

Replace <file_path> with the path to the file you want to compare. Omitting <file_path> will compare all files between the branches.

View the Differences

After running the git diff command, Git will display the differences between the files from the two branches. The output will show the changes made to each file, including additions, deletions, and modifications.

Optional: View Unified Diff

You can also use the -u or –unified option to display the differences in a unified diff format, which provides more context around the changes.

git diff -u branch1 branch2 -- <file_path>

his command will show the differences in a format that includes additional context lines.

Review and Analyze Changes

Analyze the differences shown in the output to understand the changes made between the two branches. You can review the added, deleted, and modified lines to gain insight into the differences.

By following these steps, you can compare files from two different branches in Git using the git diff command. This allows you to identify and understand the changes made between the branches, aiding in code review, debugging, and merging decisions.

Conclusion

  • git diff main..feature-branch: Compare all changes between main and feature-branch.
  • git diff main..feature-branch -- path/to/file: Compare specific file between branches.
  • git difftool main..feature-branch: Use a visual diff tool for comparison.
  • git log main..feature-branch: Get a summary of commits that are different.
  • git checkout main and git diff feature-branch -- path/to/file: Checkout one branch and compare specific files against another branch.

These methods provide flexibility depending on whether you want a textual comparison or a visual one and whether you’re comparing entire branches or specific files.