Absolutely! Here’s a full, descriptive, professional README that covers installation, setup, and usage for macOS, Linux, and Windows, along with detailed explanations for all features and workflows:
YOHAN is a comprehensive Git CLI wrapper written in Go. It simplifies Git workflows, reduces repetitive commands, and provides a colorful, interactive, and intuitive interface for developers across macOS, Linux, and Windows.
YOHAN supports both interactive menu-driven operations and direct command-line execution, complete with emoji-enhanced output and smart commit message suggestions.
-
Interactive Menu Mode
- Launch a user-friendly menu with numbered options for common Git commands.
- Ideal for beginners and users who prefer visual prompts over typing commands.
-
Command-Line Mode
- Execute commands directly:
yohan <command> - Perfect for automation, scripts, or fast workflow.
- Execute commands directly:
-
Auto Commit & Push
- Stages all changes (
git add .) automatically. - Suggests commit messages based on added, modified, and deleted files.
- Allows editing the suggested message before committing.
- Pushes commits to the remote repository.
- Stages all changes (
-
Safety Features
- Confirms before running destructive commands such as
git reset --hard. - Prevents empty commits if no changes are staged.
- Confirms before running destructive commands such as
-
Emoji & Color Output
- Uses ANSI colors for clarity.
- Adds emojis to indicate actions, making terminal output more readable.
-
Supports All Common Git Commands
status,log,branch,checkout,pull,push,merge,stash,tag,diff,remote,clone, andreset.
YOHAN can be installed on macOS, Linux, and Windows.
-
Go (>=1.20) installed: https://go.dev/dl/
-
Git installed and available in PATH
git --version
-
Install Go (if not already installed):
brew install go
-
Clone the repository:
git clone <your-repo-url> cd yohan-cli
-
Build the binary:
go build -o yohan
-
Move binary to system PATH:
sudo mv yohan /usr/local/bin/
-
Verify installation:
yohan
-
Install Go and Git:
sudo apt update sudo apt install -y golang-go git
-
Clone the repository:
git clone <your-repo-url> cd yohan-cli
-
Build the binary:
go build -o yohan
-
Move binary to PATH:
sudo mv yohan /usr/local/bin/
-
Verify installation:
yohan
-
Install Go: https://go.dev/dl/ Ensure Go bin directory is in your PATH (e.g.,
C:\Go\bin) -
Install Git: https://git-scm.com/download/win
-
Open Git Bash and clone the repository:
git clone <your-repo-url> cd yohan-cli
-
Build the binary:
go build -o yohan.exe
-
Add binary to PATH (optional): Move
yohan.exeto a folder in PATH (e.g.,C:\Users\<YourName>\bin) -
Verify:
yohan
Tip: Use Git Bash or Windows Terminal for full color and emoji support.
Run:
yohanYou’ll see a menu like this:
✨ YOHAN: All-in-One Git CLI ✨
Select an option:
1️⃣ Auto commit & push changes
2️⃣ Git status
3️⃣ Git log (last 5 commits)
4️⃣ Git branch
5️⃣ Git checkout <branch>
...
0️⃣ Exit
- Enter the number of the desired command
- Follow prompts to enter branch names, tags, or confirm destructive actions
Direct commands:
yohan commit # Auto commit & push changes
yohan status # Show Git status
yohan log # Last 5 commits
yohan branch # List branches
yohan checkout dev # Checkout branch 'dev'
yohan pull # Pull changes from remote
yohan push # Push changes
yohan merge main # Merge branch
yohan stash # Stash changes
yohan stash-pop # Apply stash
yohan tag v1.0.0 # Create a tag
yohan diff # Show diff
yohan remote # Show remotes
yohan clone <url> # Clone repo
yohan reset --hard # Hard reset (confirmation required)-
Stages all changes:
git add . -
Detects Added (A), Modified (M), and Deleted (D) files
-
Generates a suggested commit message:
➕ Add main.go, utils.go; 📝 Update README.md; ❌ Remove old_test.go -
Allows editing before committing
-
Executes
git commit -m "..."and pushes automatically
reset --hardalways asks for confirmation.- Prevents committing if no changes are staged.
📥 Staging all changes...
✅ Changes staged successfully!
Suggested Commit Message:
➕ Add main.go, utils.go; 📝 Update README.md
Edit commit message or press Enter to keep:
💾 Committing changes...
✅ Commit successful!
🚀 Pushing changes to remote...
🎉 Changes pushed successfully!
- Fork the repository
- Make improvements or add new features
- Submit pull requests
Ideas:
- Add custom shortcut mode (
yohan -m "commit message") - Integrate GitHub/GitLab PR creation
- Add configuration for default branch push
MIT License © 2025 – Built with ❤️ by Yohan Manohara
If you want, I can also create a visual “All-in-One Setup Table” for macOS, Linux, and Windows so users can copy-paste commands directly without reading the long instructions.
Do you want me to make that table too?