Commix
A bash script for automating GitHub contributions with realistic commit patterns.
Install / Use
/learn @codetesla51/CommixREADME
Commix
A bash script for automating GitHub contributions with realistic commit patterns. Commix creates backdated commits with random messages, naturally skips days, and pushes everything to your GitHub repository.
Built by uthman
Features
- Realistic Commit Patterns: Generates commits with varying frequency, mimicking natural development activity
- Random Commit Messages: Uses a pool of realistic commit messages with randomized numbers
- Natural Day Skipping: 70% chance of committing each day, creating authentic-looking contribution graphs
- Backdating Support: Set any start date to fill in your contribution history
- Customizable Commits: Configure the number of days and maximum commits per day
- Automatic Push: Sets up remote and pushes all commits to GitHub automatically
- Cross-platform Date Support: Works on both Linux and macOS
Prerequisites
- Git installed and configured
- GitHub account
- Bash shell
Installation
Quick Install (Global)
curl -sSL https://raw.githubusercontent.com/codetesla51/commix/main/install.sh | bash
Manual Installation
- Clone the repository:
git clone https://github.com/codetesla51/commix.git
cd commix
- Make the script executable:
chmod +x commit.sh
- Run the installer:
./install.sh
Usage
Basic Usage
commix
The script will guide you through an interactive setup:
- Choose to use current directory or create a new one
- Enter your GitHub repository name
- Enter your GitHub username
- Specify start date (format: YYYY-MM-DD)
- Set number of days to generate commits
- Set maximum commits per day
- Confirm and let it run
Important Notes
- Create a NEW, EMPTY repository on GitHub before running
- Do NOT initialize the repository with README, .gitignore, or license
- The repository must be completely empty for the push to work
Example Workflow
# Run commix
commix
# Follow prompts:
# - Create new directory: test-repo
# - GitHub repository: test-repo
# - GitHub username: yourusername
# - Start date: 2023-01-01
# - Number of days: 90
# - Max commits per day: 8
Configuration
The script uses the following default values if you press Enter without input:
- Start date: 2023-01-01
- Number of days: 30
- Max commits per day: 10
How It Works
- Repository Setup: Creates or uses an existing git repository
- Commit Generation: For each day in the specified range:
- 70% chance of creating commits for that day
- Random number of commits (1 to max_commits)
- Each commit gets a random message from the predefined pool
- Commits are backdated to the specific day
- Remote Configuration: Automatically sets up the GitHub remote
- Push: Pushes all commits to the main branch
Commit Messages
Commix uses realistic commit messages including:
- Update documentation and add examples
- Fix edge case in main logic
- Optimize performance for large datasets
- Implement error handling
- Add unit tests for core functions
- Refactor code for better maintainability
- Update dependencies to latest versions
- And more...
Each message is appended with a random number for uniqueness.
Troubleshooting
Push Failed
If the push fails, ensure:
- The repository exists on GitHub
- The repository is completely empty (no initial commit, README, or .gitignore)
- Your Git credentials are configured correctly
- You have write access to the repository
Git Configuration Not Found
If you see a git configuration error, set your git user:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
Invalid Date Format
Make sure to use the YYYY-MM-DD format for dates (e.g., 2023-01-01)
Contributing
Contributions are welcome! Feel free to:
- Report bugs
- Suggest features
- Submit pull requests
Author
Built by uthman
Support
If you encounter any issues or have questions, please open an issue on the GitHub repository.
Use responsibly.
