How to keep your GitHub contribution graph green

How to keep your GitHub contribution graph green

A green contribution graph is the first thing people notice on a GitHub profile — recruiters, collaborators, even future you. But real work doesn't arrive in neat daily squares. Here's how to keep the graph green without letting it run your life.

1. Fix the leaks first

Most "empty" days aren't lazy days — they're work that GitHub didn't count. Before adding anything, make sure your existing work shows up:

  • Match your commit email to an address on your GitHub account (git config user.email is the usual culprit).
  • Enable private contributions in your profile settings if much of your work is in private repos.
  • Merge small PRs frequently — commits only count on the default branch, so long-lived feature branches starve your graph all week and dump one square on merge day.

For the full rules, see what counts as a contribution on GitHub.

2. Shrink the unit of work

Streaks die on days when "a real contribution" feels too big. Make the smallest countable unit tiny and legitimate:

  • Fix a typo in your own README. Improve one docstring.
  • Open an issue when you notice a bug instead of just muttering about it — issues count.
  • Review a teammate's PR — reviews count too, and they're often the most valuable ten minutes you'll spend.

3. Put side projects on a schedule

A personal repo you touch "when you have time" is a repo you touch never. Give one evening a week to a side project and the graph takes care of itself — consistency beats volume, both for the squares and the skill.

4. Mind the timezone

Late-night commits can land on the wrong day and "break" a streak that wasn't broken. Commit with your profile timezone set correctly, and know that the 11:59 PM square is a gamble.

5. Automate the baseline — honestly

Life happens: vacations, crunch at a job whose GitHub isn't yours, weeks of work in branches nobody merges yet. If a bare-minimum green baseline matters to you, automation exists — that's literally why we built GitShine: pick repositories you own, choose a daily cadence (1–10 commits), and pick a schedule personality — 9-to-5, night owl, weekend warrior — so commits land at hours that match how you actually work. It's free, it never touches your code (empty commits via the GitHub API), and you can pause any repo with one toggle.

Our honest take: automation keeps a graph alive, not impressive. The squares open the door; the repos behind them do the talking. Use the baseline to stop worrying about streaks — and spend the reclaimed attention writing code worth clicking into.