Suppose you want to see what changed between two commits on a particular branch. First, you can go to the Code tab and change the desired branch (see previous tips on how to do this).
Next click Commits link,
and navigating to the desired commit, you can click on the commit id (as highlighted in the image below).
Now you can see all the changes for that particular commit.
I’m purely a visual person. I cannot put clothes into a dresser drawer. If it is out of sight; it’s out of mind. It’s that bad. Thus being able to view all the files in a repo for a given commit really helped drive home how Git is so different from other source control systems.
Going back to my random-example repo, suppose you want to see the state of the repo as of the first commit on master.
Navigate to the Code tab and make sure master is selected. (If you want to view the state of a repo for a commit on a different branch, use this Branch:master dropwdown button to change to desired branch.)
Now scroll all the way down to the original commit. You’ll see highlighted in the next image a <> button that displays a tooltip Browse the repository at this point in the history.
Clicking on this <> button takes you back to what looks exactly like the repo homepage, but with one key difference…
Instead of branch:master or branch:readme-draft, you’re now seeing this Tree:ad98b093 thingy.
What’s a tree? This question gets into the internals of Git, which we will learn together this year! To be honest, all I know right now is that every Git commit has a tree, so this dropdown button label is saying, “show me the files for this commit id.” You’ll also notice that
You’ll see that this Tree:ad98b093 commit id matches the id in the far right.
You might be wondering why the dropdown doesn’t show the list of all the possible trees to view. My guess is this list would be come unmanageable pretty quickly. And people probably don’t need to look up the state of a repo at a given snapshot very often.
I’m calling out this functionality now because after 2 years of using GitHub, today is the first time I’ve ever noticed this button on this page! And it’s sitting right in front of me!! O_O
At the time of this writing, my readme-draft is 3 commits ahead of master.
But suppose you want to see which commits these are.
First, switch back to the master branch (just to get the commit ID of the last commit there that readme-draft was based on, since I haven’t updated master since.)
In my example, my master branch only has 13 commits. Click on this Commits link directly above the language bar.
Now you’re looking at all the commits for this master branch. Note the last commit on master is “Delete README.md”
Now at the top of the page, you’ll notice the button I’ve failed to see for the past 2 years.
Click on the Branch: master dropdown button to switch to the readme-draft branch.
Now you see the list of commits in the readme-draft branch.
Note that the last commit shown in the image is Delete README.md, which is the last commit on the master branch. Listed above are 3 additional commits in the readme-draft branch, as the first image of this blog post said there were 3 commits ahead of master.
You could (and should) compare commit IDs, listed on the far right of each commit, since the commit message could be the same for different commits. But for this trivial example, I’m only showing the titles of the commits.