# test **Repository Path**: paulfreeman/test ## Basic Information - **Project Name**: test - **Description**: Git命令视窗操作辅助工具 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-09-03 - **Last Updated**: 2026-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Git GUI Helper > A visual Git command assistant — manage your repositories without memorizing CLI commands. ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Python](https://img.shields.io/badge/python-3+-green.svg) ![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey.svg) ## Overview **Git GUI Helper** is a Python + tkinter desktop application that wraps common Git operations into a simple "select command → fill parameters → run" workflow. - **Zero dependencies**: Only requires Python 3's built-in tkinter — no pip install needed - **Instant start**: Just `./start.sh` or `python3 git_gui_helper.py` - **Bilingual**: Full Chinese UI with [中文 README](./README.md) - **Gitee integration**: Deep support for Gitee with credential injection and repo creation via API ## Features ### 27+ Git Commands as Visual Templates Covers everyday version control operations: | Category | Commands | |---|---| | Repository | `git clone`, `git init`, `git remote add / set-url / remove / -v` | | Daily workflow | `git status`, `git add`, `git commit`, `git push`, `git pull`, `git fetch` | | Branching | `git branch`, `git checkout`, `git checkout -b`, `git merge`, `git rebase` | | History | `git log`, `git diff`, `git stash` / `stash pop` | | Tags | `git tag`, `git tag -a`, `git push --tags` | | Advanced | `git reset --soft / --hard`, `git cherry-pick`, `git rm --cached` | | User config | `git config user.name`, `git config user.email` | | Gitee | `gitee create repo` (create repos via Gitee API) | ### Three Execution Modes - **📋 Copy Command**: Generates the full command and copies to clipboard - **▶ Run Directly**: Executes in the working directory with live output in the terminal panel - **🥥 Open in Terminal**: Auto-detects your system terminal emulator and runs there > Supported terminals: deepin-terminal, gnome-terminal, konsole, xfce4-terminal, mate-terminal, qterminal, lxterminator, terminator, alacritty, kitty, xterm ### Smart Parameter Assistance - **Dynamic dropdowns**: Remote names, branch names, and modified files are auto-extracted from the current repo - **Dangerous command confirmation**: `reset --hard`, `remote remove`, etc. require a second confirmation - **Example fill**: One-click to populate example parameters ### Encrypted Credential Management - Multiple credentials stored by domain, encrypted in `git_helper_credentials.json` - Encryption: Base64 + XOR + HMAC, with optional custom master password - Auto-injects credentials into Gitee URLs as `https://user:token@gitee.com/...` - Import / export support for multi-machine migration ### Git Status Dashboard - Real-time display of current branch, unstaged changes, and untracked files - Auto-refreshes when switching working directories ### Commit Browser Switch the left panel to **「Commits」** mode (or via **Tools -> View all commits**) to browse the full commit history visually: - Tabular view with columns: hash, message, author, date (scrollable) - Branch filter: toggle between *current branch* / *all branches* - Keyword search: filter by message, author, email, or hash in real time - **Single-click** a commit to show its summary (`git show --stat`); **double-click** for the full diff (`git show`) - Right-click a commit for quick actions: copy hash, cherry-pick, checkout, soft/hard reset, revert - The left/right panes are separated by a draggable sash - resize freely ### Theme System **UI themes**: `vscode` (default) / `mac` / `git` (dark) **Terminal output themes**: `ubuntu` / `deepin` / `solarized` ### Favorites & History - Click **☆ Favorite** on frequently used commands, then toggle **⭐ Show favorites only** to filter - Command history shown at the bottom — double-click to refill parameters - Workspace management: save project directories for quick switching ### Context Menu All input fields and text areas support right-click menu: **Cut / Copy / Paste / Select All** ### Configurable Settings - **Skip confirmation toggle**: When enabled, commands run immediately without confirmation dialog (configurable in settings file) ## Quick Start ### Requirements - Python 3.6+ - tkinter (usually bundled with Python) - Linux / macOS / Windows ### Launch ```bash cd ~/ZCodeProject/Test ./start.sh ``` Or directly: ```bash python3 git_gui_helper.py ``` ### Typical Workflows #### Scenario A: Clone from Gitee 1. Select **「git clone」** from the left panel, fill in the repo URL 2. Click **「▶ Run Directly」** to clone 3. Switch to the cloned project via **「Working Directory」→「Browse...」** 4. Edit files → **「git add」** → **「git commit」** → **「git push」** #### Scenario B: Link Local Project to Gitee 1. Select your project folder (click **「Browse...」**) 2. **「git init」** to initialize 3. **「git remote add」** to link Gitee remote 4. **「git pull」** to fetch remote files (e.g. README) 5. **「git add」** + **「git commit」** + **「git push」** for first push #### Scenario C: Create Gitee Repo Online 1. Configure Gitee Token in **「Credentials」** 2. Select **「gitee create repo」**, fill name, description, etc. 3. Click run — repo is created automatically 4. Optionally auto-add remote and push current project ## Project Structure ``` Test/ ├── git_gui_helper.py # Main application (single file, ~2300 lines) ├── start.sh # Launch script ├── icon.png # App icon ├── LICENSE # MIT License ├── README.md # 中文说明 ├── README.en.md # English README (this file) ├── 新手使用指南.md # Detailed Chinese user guide ├── git_helper_credentials.json # Encrypted credentials (auto-generated) ├── git_helper_favorites.json # Favorites (auto-generated) ├── git_helper_history.json # Command history (auto-generated) └── git_helper_settings.json # User settings (auto-generated) ``` ## Security Notes 1. **Encrypted storage**: Tokens and passwords are encrypted with Base64 + XOR + HMAC before saving locally 2. **Master password**: Set a custom master password instead of the default key for stronger protection 3. **No credential leakage**: All runtime data files are in `.gitignore` — never committed to Git 4. **Token rotation**: If you suspect token leakage, revoke and regenerate it immediately on Gitee ## Troubleshooting | Issue | Solution | |---|---| | "could not read Password" | Configure Token in Credentials first — the app has no interactive terminal | | Can't copy/paste | Right-click on input fields to use the context menu | | Terminal open error | Install a supported terminal emulator (e.g. deepin-terminal) | | "refusing to merge unrelated histories" | Add `--allow-unrelated-histories` when running manually in terminal | ## License [MIT License](./LICENSE) © 2026 G.F