π 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.
β¨ How It Works
- 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 uβ¦
π 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.
β¨ How It Works
- 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 a
foo.txtfile with a reference to the original commit hash.
π Requirements
- 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"
π Quick Start
1. Clone or Use as Template
# 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.
2. Install Dependencies
npm install
3. Run the Script
npm start
4. Follow the Prompts
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)
5. Push to GitHub
After the script completes:
git remote add origin https://github.com/yourusername/my-contributions.git
git push -u origin main
π Re-running (Sync New Commits)
The script saves your configuration automatically. Just run it again to sync new commits:
npm start
Youβll see options to:
- Continue with saved configuration - Sync only new commits since last run
- Start fresh - Enter new repository/email/branch settings
π― Use Case: Squashed Commits
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
π Project Structure
send-commit-to/
βββ bin/
β βββ cli.js # Entry point
βββ src/
β βββ index.js # Main application logic
β βββ prompts.js # User interaction
β βββ git.js # Git operations
β βββ config.js # Configuration persistence
β βββ ui.js # Terminal UI (ASCII art, progress bars)
βββ foo.txt # File modified for each commit
βββ package.json
βββ README.md
βοΈ Configuration
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
π License
MIT License - Feel free to use and modify as needed.
π€ Contributing
Contributions are welcome! Feel free to open issues or submit pull requests.
Made with β€οΈ for developers who want their contributions to count.