A unified tool for Git repository migrations and commit history manipulation.
Super Git Porter combines multiple Git operations into a single, easy-to-use interface:
- Multi-Repository Mode - Combine multiple source repositories into one target repository with proper subfolder structure and configurable timestamps
- Single-Repository Mode - Port commits from one repository to another with custom timing options
- Selective Mode - Choose specific commits to migrate between repositories
- Chronology Mode - Reorganize commit history with proper chronological timestamps
- Reset Mode - Complete repository rebuild with controlled commit ordering
- Sync Mode - Push missing commits between repositories
The easiest way to use Super Git Porter is through the web interface:
./scripts/start_porter.shThis will launch a local web server and open the interface in your browser.
You can also use the unified command-line interface:
./scripts/git_porter_unified.sh <mode> [options]For example:
./scripts/git_porter_unified.sh single --source "https://github.com/source/repo.git" --target "https://github.com/target/repo.git" --branch "main" --threshold "97684b87..."Run ./scripts/git_porter_unified.sh --help to see all available options.
- Git
- Node.js (for web interface)
- Bash shell environment
- The tool requires proper Git permissions for both source and target repositories
- Some operations perform force pushes which can overwrite history
- Large repositories may take significant time to process
- No authentication mechanism is included - repository URLs must be accessible without additional authentication during the session
Combines multiple source repositories into one target repository, each in its own subdirectory.
Ports commits from one repository to another with custom timing options between commits.
Transfers selected commits between repositories. You can choose to take every other commit or skip specific commit hashes.
Reorganizes commit history to appear with proper chronological timestamps, either within today's date range or a custom date range.
Completely resets and rebuilds repository history with controlled commit ordering.
Identifies and pushes only missing commits between repositories or directly pushes the latest state.
This tool is designed for local use only. It does not implement authentication mechanisms, so ensure that you have the proper permissions for all repositories you're working with.