Blog · GitHub
Why does GitHub show fewer commits than I made?
GitHub counts a commit on your profile only if it lands on the default branch (or gh-pages) and carries an email address that is linked to your account. Everything else is missing from the graph, even though it is in the repository; at the same time merge commits do count, and a late evening that runs past midnight shows up as two days.
Which email address does GitHub match?
GitHub matches the author address of each commit against the addresses in your account settings, and nothing else. Its documentation says: “Commits must be made with an email address that is connected to your account on GitHub” (GitHub Docs, troubleshooting missing contributions, checked 9 October 2026).
On our account, 1,178 commits were made with a typo in the domain of user.email (counted on 9 October 2026). They are in the repositories, GitHub shows them in every history, and none of them counted: the API returns these commits with an empty author.login, so they belong to no account. The fix is either to add the address under Settings, Emails, or to set the right one with git config --global user.email before the next commit.
Why do commits on feature branches not count?
They count only after they reach the default branch. The same page: “Commits are only counted if they are made in the default branch or the gh-pages branch”, and commits in a fork do not count at all.
Work on a branch is therefore invisible until the merge. By 9 October 2026, 98 of our pull requests had been merged; until then, every commit in them was missing from the graph.
Do merge commits inflate the count?
Yes, as far as anything in GitHub’s rules is concerned: a merge commit is a commit on the default branch with your address, and the documentation names no exception for it. By 9 October 2026 our default branches held 3,143 commits, 198 of them merge commits, and 174 of those fell in the last 30 days, because in our workflow every working round with an AI assistant ends with a merge. Each of them is a commit that changes no line by itself.
If you want activity without merges, count it yourself, for example with git log --no-merges on the default branch. gitpuls leaves merge commits out of all activity figures, as described on the method page.
Why does a late night show up as two days?
Because a day ends at midnight in the time zone of the commit. GitHub writes: “Commits use the time zone information in the commit timestamp” (GitHub Docs, contributions reference, checked 9 October 2026). A session from 21:00 to 02:00 is split across two dates, with a short day after it.
On our account, 55 percent of the 2,942 commits without merges fall between 21:00 and 06:00 (counted on 9 October 2026). A streak of active days says little in that rhythm; the count per week says more.
How do I check a single commit?
Ask git for the address and GitHub for the account:
git log -1 --format='%ae %ad' <sha>
gh api repos/<owner>/<repo>/commits/<sha> --jq '.author.login'
If the second line prints null, GitHub could not link the address to an account, and the commit will not count until it can.
How this text was written
This article was drafted with an AI assistant from our own measurements and the sources linked above, which were checked on 9 October 2026. The numbers come from the method page; nothing was estimated.