- Shell 92.8%
- JavaScript 6.1%
- CSS 1%
- HTML 0.1%
|
Some checks failed
CI / test (4.4) (push) Failing after 11s
CI / test (5.0) (push) Failing after 10s
CI / test (5.1) (push) Failing after 12s
CI / lint (push) Failing after 4s
Test Suite / release-test (push) Has been skipped
Test Suite / test (push) Failing after 18s
Test Suite / integration-test (push) Has been skipped
Test Suite / lint (push) Failing after 5s
|
||
|---|---|---|
| .ai-chats | ||
| .cc-iterations | ||
| .claude | ||
| .claude-tasks | ||
| .cursor | ||
| .github/workflows | ||
| .look | ||
| .perpetual-motion | ||
| .root-of-repo | ||
| .specify | ||
| .taskmaster | ||
| .vscode | ||
| ai-chats | ||
| ai-knowledge | ||
| ai-protocols | ||
| bin | ||
| completions | ||
| config | ||
| dev-knowledge | ||
| docs | ||
| lib | ||
| scripts | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| 1.png | ||
| backward_compatibility_report.md | ||
| CLAUDE.md | ||
| CONTRIBUTING.md | ||
| deploy.sh | ||
| fix-git-go.sh | ||
| GEMINI.md | ||
| gogo-global.sh | ||
| gogo.sh | ||
| install.sh | ||
| LICENSE | ||
| look--claude-code-help-docs.md | ||
| README.md | ||
| release.sh | ||
| roadmap.md | ||
| sync.sh | ||
| test_backward_compat.sh | ||
🚀 Git-Go
Intelligent Git Repository Manager
Create and manage git repositories with smart sync scripts, VS Code integration, and AI-assisted development support.
Features • Architecture • Installation • Usage • Configuration • Contributing
✨ Features
- 🎯 Smart Repository Creation - Initialize new repos with sensible defaults and application type selection
- 🔄 Intelligent Sync Scripts - Generated scripts handle upstream syncing, stashing, and multi-remote push
- 📝 AI-Ready - Automatically creates CLAUDE.md files for AI-assisted development
- 🎨 VS Code Integration - Built-in tasks for one-key synchronization (Ctrl+Shift+B)
- ⚙️ Highly Configurable - Customize git hosts, templates, and behaviors
- 🎭 Fork-Aware - Special handling for forked repositories with upstream tracking
- 🔍 Security Scanning - Built-in tools to find and purge sensitive data
- 🌈 Beautiful CLI - Colorful, informative output with progress indicators and single-key navigation
- 🚀 Hybrid Architecture - Support for Electron/Web dual-mode applications
- ⚡ Performance Monitoring - Built-in profiling and performance optimization
- 📋 Template System - Extensible template management with repo-snippets integration
- 🎮 Application Types - Comprehensive 2-level menu system with 11 categories and 50+ subtypes
🏗️ Architecture
Git-Go v1.1.0 features a comprehensive modular architecture designed for performance, maintainability, and extensibility.
Core Modules
Git-Go is built around a modular library system with lazy loading and dependency management:
| Module | Purpose | Dependencies |
|---|---|---|
colors.sh |
Color output and formatting | None |
git-utils.sh |
Git operations and utilities | None |
performance-utils.sh |
Performance monitoring and optimization | None |
error.sh |
Error handling and reporting | None |
progress-utils.sh |
Progress indicators and spinners | colors |
menu-utils.sh |
Interactive menu system | colors |
app-type-selector.sh |
Application type selection with 2-level menus | menu-utils |
template-selector.sh |
Template management and copying | colors |
security.sh |
Security scanning and validation | None |
commands/common.sh |
Shared command utilities | colors, git-utils, error, security |
Key Architectural Features
- 🔄 Lazy Loading: Modules are loaded on-demand with automatic dependency resolution
- ⚡ Performance Monitoring: Built-in profiling and performance tracking
- 🛡️ Security Integration: Comprehensive security scanning and validation
- 🎨 Enhanced UX: Single-key menu navigation and progress indicators
- 🔧 Template System: Extensible template management with repo-snippets
- 🚀 Hybrid Architecture: Support for Electron/Web dual-mode applications
Application Type System
Git-Go includes a sophisticated 2-level application type selection system supporting:
- 🌐 Web Applications: 16 subtypes including React, Vue, Angular, static sites, e-commerce, etc.
- 📱 Mobile Applications: 7 subtypes including native iOS/Android, React Native, Flutter, etc.
- 🖥️ Desktop Applications: Electron and cross-platform desktop apps
- ⚡ CLI Applications: Command-line tools and automation scripts
- 🔌 API/Backend Services: REST APIs, GraphQL, microservices, serverless
- 🎮 Game Development: Browser games, mobile games, PC/console games
- 🔧 Embedded/IoT: Firmware, IoT devices, automotive applications
- 🌍 Browser Extensions: Chrome extensions, Firefox add-ons
- 🤖 AI/ML Applications: Chatbots, computer vision, NLP tools
- ✨ Specialized Applications: AR/VR, blockchain, data visualization
📦 Installation
Quick Install
The easiest way to install Git-Go is using our install script:
curl -sSL https://raw.githubusercontent.com/PowerAppsDarren/git-go/main/install.sh | bash
This will:
- Download Git-Go to
~/.local/share/git-go - Create the
git-gocommand in~/.local/bin - Set up your initial configuration
Manual Install
If you prefer to review the install script first:
# Download and review the script
curl -sSL https://raw.githubusercontent.com/PowerAppsDarren/git-go/main/install.sh -o install.sh
less install.sh
# Run it when ready
bash install.sh
Or clone and install from source:
git clone https://github.com/PowerAppsDarren/git-go.git
cd git-go
./install.sh
Requirements
- Git 2.0+
- Bash 4.0+
- Optional: VS Code for IDE integration
Post-Installation
If git-go is not found after installation, add ~/.local/bin to your PATH:
# For bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# For zsh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
🚀 Usage
Create a New Repository
git-go new --name my-awesome-project
Or interactively with application type selection:
git-go new
Create a hybrid Electron/Web application:
git-go new --name my-app --hybrid
Fork an Existing Repository
git-go fork --url https://github.com/torvalds/linux
Sync Your Repository
After creating or forking:
cd my-project
./scripts/sync.sh
Or in VS Code: Press Ctrl+Shift+B
⚙️ Configuration
Git-Go can be configured via ~/.config/git-go/config. Run:
git-go config
First-Time Setup
On first run, Git-Go will automatically launch a setup wizard:
git-go new --name my-project
# No configuration found. Running setup wizard...
Or run setup manually:
git-go setup
The wizard will guide you through:
- Choosing your git hosting service (GitHub, GitLab, Bitbucket, etc.)
- Setting up your username
- Configuring optional secondary remotes
- Enabling features like VS Code integration and AI assistance
📁 Generated Repository Structure
my-project/
├── README.md # Project readme with application type information
├── LICENSE # MIT license
├── .gitignore # Smart gitignore based on project type
├── CLAUDE.md # AI assistant instructions with hybrid architecture notes
├── scripts/
│ ├── sync.sh # Intelligent sync script with upstream support
│ └── pushall.sh # Multi-remote push script (if configured)
├── .vscode/
│ ├── tasks.json # VS Code integration with git-go sync task
│ ├── keybindings.json # User keybindings (if copied)
│ └── extensions.json # Recommended extensions (if copied)
├── .cursor/ # Cursor IDE configuration (if enabled)
├── ai-chats/ # AI chat documentation structure
│ └── dev-knowledge/ # Development knowledge base
├── src/ # Source code directory (for hybrid apps)
│ └── lib/
│ └── electron-bridge.ts # Environment detection for hybrid apps
├── electron/ # Electron desktop runtime (for hybrid apps)
├── package.json # NPM configuration with hybrid scripts (for hybrid apps)
└── electron-builder.yml # Desktop app build configuration (for hybrid apps)
🎯 Command Reference
| Command | Description | Example |
|---|---|---|
new |
Create a new repository with application type selection | git-go new --name my-project |
fork |
Fork an existing repository | git-go fork --url https://github.com/user/repo |
clone |
Clone an existing repository | git-go clone --url https://github.com/user/repo |
config |
Edit configuration | git-go config |
status |
Show repository sync status | git-go status |
setup |
Run setup wizard | git-go setup |
version |
Show version | git-go version |
help |
Show help | git-go help |
🔒 Security Tools
Git-Go includes security tools to help you prepare repositories for public release:
Sensitive Data Scanner
The /my-sanitize command scans all your repositories for sensitive information:
/my-sanitize # Scans ~/src, ~/_git, ~/git directories
This creates reports in ~/.src/[repo-name]/sensitive-info.md showing:
- Personal usernames and emails
- Private git server URLs
- API keys and tokens
- Hardcoded paths
- Files that should be removed
Git History Purge Tool
The git-purge-sensitive command removes sensitive files from git history:
cd your-repo
git-purge-sensitive
Features:
- Automatic Backups: Before purging, all sensitive files are backed up to
~/.src/[repo-name]/purged-files-[timestamp]/ - Multiple Methods: Choose between git filter-branch, BFG Repo-Cleaner, or manual clean clone
- Common Patterns: Pre-configured to remove config files, .env files, personal scripts
- History Rewrite: Completely removes files from all commits in git history
⚠️ Warning: This rewrites git history. Always backup first and coordinate with collaborators before force-pushing.
Backup Locations
All sensitive file backups are stored in:
~/.src/
├── [repo-name]/
│ ├── sensitive-info.md # Scan report
│ └── purged-files-[timestamp]/ # Backed up files
│ ├── README.md # Restoration instructions
│ └── [original file structure]
🤝 Contributing
We love contributions! Please see our Contributing Guide for details.
Development
# Clone the repo
git clone https://github.com/yourusername/git-go.git
cd git-go
# Open in your favorite editor
cursor . # or: code .
# The main script to edit is:
# bin/git-go
# Deploy locally and run tests
./deploy.sh
# Test your changes
git-go new --name test-project
# When ready to release a new version
./release.sh
Development Workflow
-
Edit the code - The main script is
bin/git-go. Open it in Cursor or VS Code:cursor bin/git-go # or: code bin/git-go -
Deploy locally - This installs git-go to ~/bin and runs tests:
./deploy.sh -
Test manually - Try out your changes:
git-go new --name test-repo -
Release - When ready to publish a new version:
./release.sh
Key Files
bin/git-go- Main executable script with modular architecturelib/- Modular library system:colors.sh- Color output and formatting utilitiesgit-utils.sh- Git operations and utilitiesperformance-utils.sh- Performance monitoring and optimizationerror.sh- Error handling and reportingprogress-utils.sh- Progress indicators and spinnersmenu-utils.sh- Interactive menu systemapp-type-selector.sh- Application type selection with 2-level menustemplate-selector.sh- Template management and copyingsecurity.sh- Security scanning and validationcommands/- Command-specific modules (common.sh, new.sh, fork.sh, etc.)
tests/- Comprehensive test suite with TDD frameworkdeploy.sh- Local deployment script (runs tests automatically)release.sh- Version release script
📝 License
MIT © Your Name
If you find Git-Go useful, please ⭐ this repository!