🧠 How I Made a Backdated Git Commit Show on GitHub Contributions


🎯 Goal
I wanted to make a commit on GitHub with a custom past date - specifically, July 1, 2025, at 12:00 PM - to reflect the actual date the work was completed on my GitHub profile.
Sounds easy, right? I thought so too.
But here's how it actually went 😅
📍Step 1: Creating the Commit Locally
I made a small change in my project and staged it with:
$ echo "Backdated test" >> backdated.txt
$ git add backdated.txt
To commit with a custom timestamp, I used:
$ GIT_AUTHOR_DATE="2025-07-01T12:00:00" GIT_COMMITTER_DATE="2025-07-01T12:00:00" git commit -m "Backdated commit to July 1, 2025"
✅ This created a commit with the exact timestamp I wanted.
❌ Problem 1: bash: commit: command not found
At first, Git Bash wouldn’t recognize the commit command because I broke it across lines incorrectly.
Fix: Run the full commit command on a single line, or use backslashes with proper spacing.
❌ Problem 2: Push Rejected
When I tried to push to GitHub, it said:
error: failed to push some refs to origin
Turns out, Git wouldn't let me push because my local branch and the remote had different histories.
Fix: I pulled the latest changes using this:
$ git pull origin main --allow-unrelated-histories
❌ Problem 3: Vim Nightmare
During that pull, Git launched Vim to ask for a merge message... and I got stuck inside it.
Fix: Exited Vim by pressing:
$ Esc
:wq
Enter
Classic Git developer moment.
[Screenshot- Vim Window in git Bash terminal]
✅ Final Steps
After escaping Vim, I added the file again just to be sure, then committed and pushed:
$ git add backdated.txt
GIT_AUTHOR_DATE="2025-07-01T12:00:00" GIT_COMMITTER_DATE="2025-07-01T12:00:00" git commit -m "Backdated push for July 1, 2025"
git push origin main
This time - everything worked.
🟩 The Green Square Appears
I went to my GitHub profile and hovered over July 1, 2025. Finally saw:
📸 [Screenshot: GitHub contribution graph showing green square on July 1, 2025]
💡 What I Learned (the hard way)
Backdating commits is possible - but only if you set the environment variables correctly.
GitHub counts a commit only if:
It’s pushed to the default branch (usually
main
)It uses a verified email linked to your GitHub account
Git can reject pushes if the histories don’t match -
--allow-unrelated-histories
is your friendGit Bash doesn’t support
Ctrl + V
(use right-click to paste) (funny…)Vim will trap you if you’re not prepared
🧘 Final Thoughts
All of this… just to get one green square on the contribution graph.
Was it a lot?
Yes.
Was it worth it?
Absolutely. 😄
If you’re ever trying to do the same and getting stuck, just remember - I did too.
~Ayush Hardeniya
Subscribe to my newsletter
Read articles from Ayush Hardeniya directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Ayush Hardeniya
Ayush Hardeniya
Hey, I'm Ayush Hardeniya (aka Ayush Sharma) 👋 An engineering student who treats every coding challenge like a 🎮 new level to conquer. Through daily reflections, real-world problems, and code breakdowns, I document my journey --- not just to grow, but to help others grow with me. Because honestly... I don’t code, I play it. 🔥