Skip to main content

Comparing commits

To compare different versions of your repository, append /compare to your repository's path.

We'll demonstrate the power of Compare by looking at the compare page for a fork of the Linguist repo, which is at https://.com/octocat/linguist/compare/master...octocat:master.

Every repository's Compare view contains two drop down menus: base and compare.

base should be considered the starting point of your comparison, and compare is the endpoint. During a comparison, you can always change your base and compare points by clicking on Edit.

The most common use of Compare is to compare branches, such as when you're starting a new pull request. You'll always be taken to the branch comparison view when starting a new pull request.

To compare branches, you can select a branch name from the compare drop down menu at the top of the page.

Here's an example of a comparison between two branches.

Comparing release tags will show you changes to your repository since the last release. For more information, see Comparing releases.

To compare tags, you can select a tag name from the compare drop-down menu at the top of the page.

Here's an example of a comparison between two tags.

Note

If a branch and a tag have the same name, the branch will be used when comparing commits. You can compare the tag specifically by adding tags/ to the tag name.

You can also compare two arbitrary commits in your repository or its forks on in a two-dot diff comparison.

To quickly compare two commits or Git Object IDs (OIDs) directly with each other in a two-dot diff comparison on , edit the URL of your repository's "Comparing changes" page.

For example, this URL uses the shortened SHA codes to compare commits f75c570 and 3391dcc: https://.com/-linguist/linguist/compare/f75c570..3391dcc.

To learn more about other comparison options, see About comparing branches in pull requests.

You can compare your base repository and any forked repository. This is the view that's presented when a user performs a Pull Request to a project.

To compare branches on different repositories, preface the branch names with user names. For example, by specifying octocat:main for base and octo-org:main for compare, you can compare the main branch of the repositories respectively owned by octocat and octo-org.

You can also preface the branch name with a user name and a repository name. For example, specifying octocat:awesome-app:main would use the main branch in the octocat/awesome-app repository. This can be useful in large organizations, where you might have an upstream repository and a fork both owned by the organization. For more information, see About forks.

Here's an example of a comparison between two repositories.

You can compare a single commit in Git to the commit's predecessors using two types of notation.

NotationMeaningExampleComparison
^One commit prior. Repeat the ^ character to indicate one more commit further back in the history.96d29b7^^^^^

Represents the commit five commits prior to 96d29b7.
View comparison
~NN commit(s) prior.96d29b7~5

Represents the commit five commits prior to 96d29b7.
View comparison