🧠 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-historiesis 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





