send-commit-to - Mirror your contribution history from private/work repositories to your GitHub profile
Ever worked on private repositories or company projects that don't show up on your GitHub contribution graph? This tool helps you mirror your commit history (dates only, not content) to a repository you control, so your contributions are visible on your profile.
- Point to a source repository on your local machine
- Filter by your email to find your commits
- Mirror commit timestamps to this repository (creates empty commits with matching dates)
- Push to GitHub and watch your contribution graph update!
⚠️ Note: This tool only copies commit dates, not the actual code or commit messages. Each mirrored commit simply updates afoo.txtfile with a reference to the original commit hash.
- Node.js 18.0 or higher
- Git installed and configured globally
- Git user configured:
git config --global user.name "Your Name" git config --global user.email "your@email.com"
# Clone this repository
git clone https://github.com/yourusername/send-commit-to.git my-contributions
cd my-contributions
# Or click **"Use this template"** on GitHub to create your own copy.
# Install dependencies
npm install
# Run the script
npm start
# The script will ask you for:
# - **Repository path**: Relative or absolute path to your source repository
# - **Author email**: The email used in commits you want to mirror
# - **Branch name**: Which branch to get commits from (default: `main`)
# After the script completes, push to your GitHub repository:
git remote add origin https://github.com/yourusername/my-contributions.git
git push -u origin mainThe script saves your configuration automatically. Just run it again to sync new commits:
npm startYou'll see options to:
- Continue with saved configuration - Sync only new commits since last run
- Start fresh - Enter new repository/email/branch settings
If your team uses squash merging on main, your individual commits might be lost in the history. To preserve your contribution history:
- Run the script
- When asked for branch, enter your development branch (e.g.,
dev,develop,feature-branch) - This captures all your commits before they were squashed into main
Your settings are automatically saved and include:
- Source repository path
- Author email filter
- Branch name
- Last run timestamp (for incremental syncs)
- List of processed commit hashes
Configuration location:
- Windows:
%APPDATA%/send-commit-to-nodejs/config.json - macOS:
~/Library/Preferences/send-commit-to-nodejs/config.json - Linux:
~/.config/send-commit-to-nodejs/config.json
MIT License - Feel free to use and modify as needed.
Contributions are welcome! Feel free to open issues or submit pull requests.
Made with ❤️ for developers who want their contributions to count.
