Skip to content

Latest commit

 

History

History
76 lines (47 loc) · 4.93 KB

File metadata and controls

76 lines (47 loc) · 4.93 KB
title intro redirect_from versions
Comparing commits
You can compare the state of your repository across branches, tags, commits, forks, and dates.
/articles/comparing-commits-across-time
/github/committing-changes-to-your-project/comparing-commits-across-time
/github/committing-changes-to-your-project/comparing-commits
/github/committing-changes-to-your-project/viewing-and-comparing-commits/comparing-commits
fpt ghes ghec
*
*
*

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://github.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.

Comparing branches

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 tags

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

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 %}

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.

{% endnote %}

Comparing commits

You can also compare two arbitrary commits in your repository or its forks on {% data variables.product.prodname_dotcom %} 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 {% data variables.product.prodname_dotcom %}, edit the URL of your repository's "Comparing changes" page.

{% data reusables.repositories.two-dot-diff-comparison-example-urls %}

To learn more about other comparison options, see "AUTOTITLE."

Comparing across forks

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 "AUTOTITLE."

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

Comparisons across commits

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

Notation Meaning Example Comparison
^ 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
~N N commit(s) prior. 96d29b7~5

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

Further reading