|
1 | | -# Tauri + React + Typescript |
| 1 | +<div align="center"> |
| 2 | + <br /> |
| 3 | + <img src="https://img.icons8.com/color/120/000000/git.png" alt="Git Commander Logo" /> |
| 4 | + <h1>Git Commander</h1> |
| 5 | + <p> |
| 6 | + <strong>The Ultimate GUI for Git Repository Management & Configuration</strong> |
| 7 | + </p> |
| 8 | + <p> |
| 9 | + <a href="#features">Features</a> • |
| 10 | + <a href="#installation">Installation</a> • |
| 11 | + <a href="#architecture">Architecture</a> • |
| 12 | + <a href="#safety-first">Safety Protocol</a> |
| 13 | + </p> |
| 14 | +</div> |
2 | 15 |
|
3 | | -This template should help get you started developing with Tauri, React and Typescript in Vite. |
| 16 | +<br /> |
4 | 17 |
|
5 | | -## Recommended IDE Setup |
| 18 | +## 🚀 Overview |
| 19 | +**Git Commander** is an enterprise-grade desktop companion designed to solve the most common (and frustrating) Git configuration issues. Whether you are migrating repositories between GitHub accounts, fixing mismatched author emails, purging stale branches, or needing to completely wipe and reinitialize a repository safely—Git Commander provides a sleek, GitHub-inspired Dark Mode GUI to do it all in just a few clicks. |
6 | 20 |
|
7 | | -- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer) |
| 21 | +Forget about memorizing obscure Git CLI commands. Every destructive action is previewable, reversible, and explicitly audited. |
| 22 | + |
| 23 | +--- |
| 24 | + |
| 25 | +## ✨ Features |
| 26 | + |
| 27 | +### 📊 Comprehensive Dashboard |
| 28 | +Get an instant read on your repository's pulse. |
| 29 | +- **Identity Check:** Instantly view the currently active User Name and Email. |
| 30 | +- **Repository State:** Check the current branch and uncommitted dirty files. |
| 31 | +- **Remote Topology:** Beautiful tables displaying all configured Fetch and Push remote URLs. |
| 32 | +- **Commit History:** A quick view of the last 10 commits, their hashes, authors, and timestamps. |
| 33 | + |
| 34 | +### 🛠️ Configuration Wizard |
| 35 | +Never push a commit to the wrong GitHub profile again. |
| 36 | +- Set your Git `user.name` and `user.email` interactively. |
| 37 | +- Apply configurations **Locally** (just for this repo) or **Globally** (for your whole machine). |
| 38 | +- **Dry-Run Mode:** Preview the exact `git config` commands that will be executed under the hood. |
| 39 | + |
| 40 | +### 🌐 Remote Management |
| 41 | +Manage your repository's network connections effortlessly. |
| 42 | +- **Add / Update / Remove** remotes (e.g., `origin`, `upstream`) through a clean UI. |
| 43 | +- **Auto-Validation:** The app will physically ping the target URL to ensure the repository actually exists *before* you save the configuration. |
| 44 | + |
| 45 | +### 🧹 Branch Cleanup Tool |
| 46 | +Spring cleaning for your git tree. |
| 47 | +- View a unified table of **Local** and **Remote** branches. |
| 48 | +- See exactly how long ago each branch was last updated. |
| 49 | +- **Bulk Selection:** Select multiple stale branches and delete them simultaneously. |
| 50 | +- **Force Mode:** Toggle `-D` vs `-d` for unmerged branches. |
| 51 | +- Quickly checkout cleanly into any existing branch. |
| 52 | + |
| 53 | +### ☢️ Repository Reinitializer |
| 54 | +The "Nuke and Pave" solution, made safe. |
| 55 | +- Perfect for when a repository's history is hopelessly mangled. |
| 56 | +- **Automatic Backup:** Before touching anything, Git Commander duplicates your current `.git` folder into a `.git_backup_<timestamp>` folder. |
| 57 | +- Deletes the active Git tracking, runs a fresh `git init`, assigns your chosen Name/Email/Remote, and creates a clean Initial Commit—all in one click. |
| 58 | + |
| 59 | +### 📜 Audit Log |
| 60 | +Absolute transparency. |
| 61 | +- Every single action you perform via Git Commander is permanently logged to a local `.git/commander-audit.log` file. |
| 62 | +- View a chronological history of changes directly within the app's Audit View. |
| 63 | + |
| 64 | +--- |
| 65 | + |
| 66 | +## 🏗️ Architecture & Tech Stack |
| 67 | + |
| 68 | +Git Commander is designed with a **Node.js local backend** and a **React/Vite frontend**. This allows the UI to remain incredibly snappy while safely shelling out to the local machine's native Git executable. |
| 69 | + |
| 70 | +### Frontend |
| 71 | +- **React 19 & TypeScript:** Strict typing for maximum reliability. |
| 72 | +- **Vite:** Blazing fast hot-module replacement and builds. |
| 73 | +- **Vanilla CSS:** A custom, highly optimized design system mimicking GitHub's enterprise dark mode. No bulky UI libraries; just CSS variables, glassmorphism, and smooth micro-animations. |
| 74 | +- **Lucide React:** Clean, consistent iconography. |
| 75 | + |
| 76 | +### Backend |
| 77 | +- **Node.js & Express:** A lightweight local server (`server.js`) acting as the bridge to your filesystem. |
| 78 | +- **Native Git Integration:** Uses `child_process.exec` to run highly optimized Git commands directly against the `.git` database. |
| 79 | +- **Zero-Dependency Git:** Does not rely on heavy NPM git wrappers. It talks to standard `git` directly. |
| 80 | + |
| 81 | +--- |
| 82 | + |
| 83 | +## 💻 Installation & Usage |
| 84 | + |
| 85 | +Git Commander requires **Node.js** and **Git** to be installed on your machine. |
| 86 | + |
| 87 | +### 1. Clone the Repository |
| 88 | +```bash |
| 89 | +git clone <your-repository-url> |
| 90 | +cd git-commander |
| 91 | +``` |
| 92 | + |
| 93 | +### 2. Install Dependencies |
| 94 | +```bash |
| 95 | +npm install |
| 96 | +npm install express cors |
| 97 | +``` |
| 98 | + |
| 99 | +### 3. Start the Backend Engine |
| 100 | +The backend server handles all the file system and Git operations. Open a terminal and run: |
| 101 | +```bash |
| 102 | +node server.js |
| 103 | +``` |
| 104 | +*(By default, this will run on `http://localhost:3001` or `http://localhost:3000` depending on your configuration).* |
| 105 | + |
| 106 | +### 4. Start the Frontend Application |
| 107 | +Open a **second terminal window** and launch the React interface: |
| 108 | +```bash |
| 109 | +npm run dev |
| 110 | +``` |
| 111 | + |
| 112 | +### 5. Access the App |
| 113 | +Open your browser and navigate to **[http://localhost:5173](http://localhost:5173)**. Enter the absolute path to any local Git repository in the sidebar and click **Load**! |
| 114 | + |
| 115 | +--- |
| 116 | + |
| 117 | +## 🛡️ Safety First Protocol |
| 118 | +We take your source code seriously. |
| 119 | +1. **Dry Runs:** Almost every operation has a "Preview Commands" button. You will always know what terminal commands are being executed. |
| 120 | +2. **Backups:** Destructive actions (like the Reinitializer) will **always** create a full physical copy of your `.git` folder before making modifications. |
| 121 | +3. **Audit Trails:** If you ever wonder what settings were changed, check the Audit Log tab to see a timestamped history. |
| 122 | + |
| 123 | +--- |
| 124 | + |
| 125 | +<div align="center"> |
| 126 | + <p>Built for developers who value clean commit histories and flawless configurations.</p> |
| 127 | +</div> |
0 commit comments