title | intro | redirect_from | versions | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Comparing commits |
You can compare the state of your repository across branches, tags, commits, forks, and dates. |
|
|
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.
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 "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 %}
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."
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.
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 |