gitxelectron 1.3.6 → 1.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +247 -70
- package/bin/auto-push.js +526 -0
- package/bin/cli.js +41 -7
- package/out/main/index.js +20 -7
- package/out/renderer/assets/index-D_wJ7hR7.css +2989 -0
- package/out/renderer/assets/{index-BQtoJFsL.js → index-FVTFdxtU.js} +971 -380
- package/out/renderer/index.html +2 -2
- package/package.json +4 -2
- package/out/renderer/assets/index-CmvL1s5W.css +0 -2913
package/README.md
CHANGED
|
@@ -1,97 +1,274 @@
|
|
|
1
|
-
# GitElectron (
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
##
|
|
1
|
+
# GitElectron (by PushGitX) ⚡
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/gitxelectron)
|
|
6
|
+
[](https://www.npmjs.com/package/gitxelectron)
|
|
7
|
+
[](https://github.com)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
[](https://deepmind.google)
|
|
10
|
+
[](https://www.electronjs.org)
|
|
11
|
+
|
|
12
|
+
<br />
|
|
13
|
+
|
|
14
|
+
**An elegant, silent, auto-synchronizing Git engine and AI-powered workflow assistant.**
|
|
15
|
+
_Works as a high-performance desktop application and an instant, zero-install terminal CLI._
|
|
16
|
+
|
|
17
|
+
<br />
|
|
18
|
+
|
|
19
|
+
> _"I just write code. GitElectron takes care of Git."_
|
|
20
|
+
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 📑 Table of Contents
|
|
26
|
+
|
|
27
|
+
- [Overview](#-overview)
|
|
28
|
+
- [Real-World Problem Solvers](#-real-world-problem-solvers)
|
|
29
|
+
- [1. Big File Streaming Splitter (>95MB)](#1-big-file-streaming-splitter-95mb)
|
|
30
|
+
- [2. 60 FPS Virtualized Commit Receipt (50,000+ Files)](#2-60-fps-virtualized-commit-receipt-50000-files)
|
|
31
|
+
- [3. AI Auto-Healer for Cryptic Git Errors](#3-ai-auto-healer-for-cryptic-git-errors)
|
|
32
|
+
- [4. Zero-Leak Security Interceptor](#4-zero-leak-security-interceptor)
|
|
33
|
+
- [5. Massive Repository Engine](#5-massive-repository-engine)
|
|
34
|
+
- [6. Universal Push Wizard](#6-universal-push-wizard)
|
|
35
|
+
- [How It Compares](#-how-it-compares)
|
|
36
|
+
- [System Architecture](#-system-architecture)
|
|
37
|
+
- [Quick Start](#-quick-start)
|
|
38
|
+
- [Method 1: Zero-Install (npx)](#method-1-zero-install-npx)
|
|
39
|
+
- [Method 2: Global CLI (npm)](#method-2-global-cli-npm)
|
|
40
|
+
- [Method 3: Native Desktop App](#method-3-native-desktop-app)
|
|
41
|
+
- [CLI Reference](#-cli-reference)
|
|
42
|
+
- [Tech Stack](#-tech-stack)
|
|
43
|
+
- [Development & Building](#-development--building)
|
|
44
|
+
- [License](#-license)
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 🌟 Overview
|
|
49
|
+
|
|
50
|
+
GitElectron bridges the gap between terminal efficiency and modern visual developer ergonomics. Built for fullstack developers, AI/ML engineers, and cross-functional teams, it removes the repetitive manual friction of staging, committing, resolving push conflicts, and managing oversized assets.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 🚀 Real-World Problem Solvers
|
|
55
|
+
|
|
56
|
+
### 1. Big File Streaming Splitter (>95MB)
|
|
57
|
+
|
|
58
|
+
- **The Problem**: GitHub strictly blocks any single file $\ge 100\text{ MB}$. A single oversized model checkpoint, archive, or dataset can corrupt push history and lock an entire repository.
|
|
59
|
+
- **The Solution**:
|
|
60
|
+
- Automatically identifies files exceeding **95MB**.
|
|
61
|
+
- Streams and chunks them at **$>500\text{ MB/s}$** into compliant $\le 45\text{ MB}$ parts (`.part00`, `.part01`, etc.).
|
|
62
|
+
- Generates a cryptographic SHA-256 manifest (`.split-manifest.json`).
|
|
63
|
+
- Automatically isolates the original file from Git index via `.git/info/exclude`.
|
|
64
|
+
- Reassembles files with a single command (`./auto-restore.sh` or `npm run auto-restore`) on any machine with byte-for-byte SHA-256 verification.
|
|
65
|
+
|
|
66
|
+
### 2. 60 FPS Virtualized Commit Receipt (50,000+ Files)
|
|
67
|
+
|
|
68
|
+
- **The Problem**: Opening commits with tens of thousands of modified files crashes or freezes standard Git GUIs (like GitHub Desktop or Sourcetree) due to massive DOM overhead.
|
|
69
|
+
- **The Solution**:
|
|
70
|
+
- Implements **DOM Virtualization** inside an iOS Glassmorphism thermal receipt printer.
|
|
71
|
+
- Renders only the $\sim 20$ rows currently in the viewport while supporting smooth native scrolling across **49,000+ files in $0\text{ms}$**.
|
|
72
|
+
- Includes real-time fuzzy search and instant addition/deletion statistics.
|
|
73
|
+
|
|
74
|
+
### 3. AI Auto-Healer for Cryptic Git Errors
|
|
75
|
+
|
|
76
|
+
- **The Problem**: Unresolved merge conflicts, non-fast-forward push rejections, detached HEADs, and stale lockfiles derail developer focus.
|
|
77
|
+
- **The Solution**:
|
|
78
|
+
- Raw Git stderr is analyzed in real-time by **Google Gemini** or **DeepSeek** via an isolated backend service.
|
|
79
|
+
- Automatically generates an explanation and the exact, safe terminal commands to resolve the issue with 1-click execution.
|
|
80
|
+
|
|
81
|
+
### 4. Zero-Leak Security Interceptor
|
|
82
|
+
|
|
83
|
+
- **The Problem**: Bot scrapers scan public GitHub repositories for `.env`, private keys, and tokens within milliseconds of a push.
|
|
84
|
+
- **The Solution**:
|
|
85
|
+
- The staging pipeline scans unstaged files against strict regex patterns (`.env*`, `*.pem`, `*.key`, `id_rsa`, `id_ed25519`, `credentials.json`).
|
|
86
|
+
- Automatically isolates matching secrets before staging and adds them to `.git/info/exclude`.
|
|
87
|
+
|
|
88
|
+
### 5. Massive Repository Engine
|
|
89
|
+
|
|
90
|
+
- **The Problem**: Staging 20,000+ files simultaneously causes RPC timeouts, packet memory overflows, and terminal freezes.
|
|
91
|
+
- **The Solution**:
|
|
92
|
+
- Batches staging in chunks of 5,000 files.
|
|
93
|
+
- Automatically tunes network memory buffers:
|
|
94
|
+
- `http.postBuffer = 1GB`
|
|
95
|
+
- `pack.windowMemory = 256MB`
|
|
96
|
+
- `pack.packSizeLimit = 500MB`
|
|
97
|
+
- Shows live transfer speeds and ETA in real time.
|
|
98
|
+
|
|
99
|
+
### 6. Universal Push Wizard
|
|
100
|
+
|
|
101
|
+
- **The Problem**: Non-technical team members or developers wanting to push an untracked local directory must run 8+ terminal setup commands.
|
|
102
|
+
- **The Solution**:
|
|
103
|
+
- Drag and drop any folder into the window.
|
|
104
|
+
- GitElectron detects collisions, clones sparse remotes, and pushes directly to any target branch without prior manual `git init`.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 📊 How It Compares
|
|
109
|
+
|
|
110
|
+
| Feature | Standard Git CLI | GitHub Desktop | **GitElectron (PushGitX)** |
|
|
111
|
+
| :-------------------------- | :-------------------------: | :----------------------: | :---------------------------------: |
|
|
112
|
+
| **Files > 100MB** | ❌ Hard Rejection | ❌ Hard Rejection | ✅ **Auto-Splits into 45MB Chunks** |
|
|
113
|
+
| **50,000+ File Commits** | ⚠️ Can Exhaust Memory | ❌ Freezes UI | ✅ **Virtualized 60 FPS Viewport** |
|
|
114
|
+
| **Secret Leak Interceptor** | ❌ Manual `.gitignore` | ⚠️ Basic Prompts | ✅ **Automated Scan & Exclude** |
|
|
115
|
+
| **AI Error Auto-Heal** | ❌ None | ❌ None | ✅ **Gemini / DeepSeek Auto-Fix** |
|
|
116
|
+
| **Zero-Install Run** | ❌ Requires git installed | ❌ Large Installer | ✅ **`npx gitxelectron open`** |
|
|
117
|
+
| **Universal Folder Push** | ❌ Multiple Manual Commands | ❌ Must be existing repo | ✅ **Drag-and-Drop sparse push** |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 🏗️ System Architecture
|
|
122
|
+
|
|
123
|
+
```mermaid
|
|
124
|
+
graph TD
|
|
125
|
+
A[User Action / Code Save] --> B{Entry Point}
|
|
126
|
+
B -->|Terminal| C[Commander CLI / npx]
|
|
127
|
+
B -->|Desktop UI| D[React 19 + Tailwind Viewport]
|
|
128
|
+
|
|
129
|
+
C --> E[Core Automation Engine]
|
|
130
|
+
D --> E
|
|
131
|
+
|
|
132
|
+
E --> F[Secret Scanner]
|
|
133
|
+
F -->|Secret Detected| F1[Isolate in .git/info/exclude]
|
|
134
|
+
F -->|Clean| G{Single File > 95MB?}
|
|
135
|
+
|
|
136
|
+
G -->|Yes| H[Streaming Splitter: 45MB Chunks + SHA-256 Manifest]
|
|
137
|
+
G -->|No| I[Git LFS AI/ML Pipeline]
|
|
138
|
+
|
|
139
|
+
H --> J[Porcelain Fast Staging & Buffer Optimization]
|
|
140
|
+
I --> J
|
|
141
|
+
|
|
142
|
+
J --> K[Remote Push with Live Progress]
|
|
143
|
+
K -->|Rejection / Conflict| L[Gemini / DeepSeek AI Auto-Healer]
|
|
144
|
+
L -->|Auto-Fix Commands| K
|
|
145
|
+
K -->|Success| M[60 FPS Virtualized Receipt Renderer]
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## ⚡ Quick Start
|
|
26
151
|
|
|
27
152
|
### Method 1: Zero-Install (npx)
|
|
28
153
|
|
|
29
|
-
|
|
154
|
+
Run the desktop app directly for your current folder without installing anything globally:
|
|
30
155
|
|
|
31
156
|
```bash
|
|
32
157
|
npx gitxelectron open
|
|
33
158
|
```
|
|
34
159
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
### Method 2: NPM (Recommended for Developers)
|
|
160
|
+
### Method 2: Global CLI (npm)
|
|
38
161
|
|
|
39
|
-
|
|
162
|
+
Install globally across your machine:
|
|
40
163
|
|
|
41
164
|
```bash
|
|
42
165
|
npm install -g gitxelectron
|
|
43
166
|
```
|
|
44
167
|
|
|
45
|
-
|
|
168
|
+
Push a single file directly to GitHub:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
gitxelectron push -f src/index.ts -m "Feat: updated engine"
|
|
172
|
+
```
|
|
46
173
|
|
|
47
|
-
|
|
174
|
+
Run an automatic stage, big-file split, and push:
|
|
48
175
|
|
|
49
|
-
|
|
176
|
+
```bash
|
|
177
|
+
gitxelectron auto-push "Auto-save: nightly build"
|
|
178
|
+
```
|
|
50
179
|
|
|
51
|
-
|
|
180
|
+
### Method 3: Native Desktop App
|
|
52
181
|
|
|
53
|
-
|
|
182
|
+
Download the compiled release for your platform from the [Releases](https://github.com) section:
|
|
54
183
|
|
|
55
|
-
|
|
56
|
-
|
|
184
|
+
- **Windows**: `gitxelectron-setup.exe` or `gitxelectron-portable.exe`
|
|
185
|
+
- **macOS**: `gitxelectron.dmg` (Universal Intel & Apple Silicon)
|
|
186
|
+
- **Linux**: `gitxelectron.AppImage` / `gitxelectron.deb`
|
|
57
187
|
|
|
58
|
-
|
|
188
|
+
---
|
|
59
189
|
|
|
60
|
-
|
|
190
|
+
## 💻 CLI Reference
|
|
61
191
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
# OR if installed globally:
|
|
65
|
-
gitxelectron open
|
|
66
|
-
```
|
|
192
|
+
```
|
|
193
|
+
Usage: gitxelectron [command] [options]
|
|
67
194
|
|
|
68
|
-
|
|
195
|
+
Commands:
|
|
196
|
+
open Open GitElectron desktop app in the current directory
|
|
197
|
+
push [options] Push a file or folder directly to GitHub from terminal
|
|
198
|
+
Options:
|
|
199
|
+
-f, --file <path> Target file or directory (required)
|
|
200
|
+
-m, --message <msg> Commit message
|
|
201
|
+
-b, --branch <branch> Remote branch to push to
|
|
202
|
+
auto-push [message] Auto-stage, commit, split big files (>95MB), and push with live status
|
|
203
|
+
auto-restore Reassemble split files with SHA-256 integrity verification
|
|
204
|
+
help [command] Display help for a specific command
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Bash & PowerShell Scripts
|
|
208
|
+
|
|
209
|
+
Self-contained scripts are included in the repository root for headless CI/CD environments:
|
|
69
210
|
|
|
70
|
-
- **
|
|
211
|
+
- **Linux / macOS / Git Bash**:
|
|
71
212
|
```bash
|
|
72
|
-
|
|
213
|
+
chmod +x auto-push.sh auto-restore.sh
|
|
214
|
+
./auto-push.sh
|
|
215
|
+
./auto-restore.sh
|
|
73
216
|
```
|
|
217
|
+
- **Windows PowerShell**:
|
|
218
|
+
```powershell
|
|
219
|
+
./auto-push.ps1
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## 🛠️ Tech Stack
|
|
225
|
+
|
|
226
|
+
- **Core & Runtime**: [Electron](https://www.electronjs.org/) (v39), [Node.js](https://nodejs.org/) (v22/24)
|
|
227
|
+
- **Frontend**: [React 19](https://react.dev/), [TypeScript](https://www.typescriptlang.org/) (v5.9), [TailwindCSS](https://tailwindcss.com/)
|
|
228
|
+
- **Bundler**: [Vite](https://vitejs.dev/) & [Electron-Vite](https://electron-vite.org/)
|
|
229
|
+
- **Git Automation**: [Simple-Git](https://github.com/steveukx/simple-git), custom streaming pipes
|
|
230
|
+
- **File System Daemon**: [Chokidar](https://github.com/paulmillr/chokidar) (v5)
|
|
231
|
+
- **AI Integrations**: [Google Generative AI](https://ai.google.dev/) (Gemini), [OpenAI / DeepSeek SDK](https://github.com/openai/openai-node)
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## 🧑💻 Development & Building
|
|
236
|
+
|
|
237
|
+
### 1. Clone & Install
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
git clone https://github.com/your-username/GitQuickPush.git
|
|
241
|
+
cd GitQuickPush
|
|
242
|
+
npm install
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### 2. Start Development Server (Hot-Reload Enabled)
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
npm run dev
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### 3. Type Checking
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
npm run typecheck
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### 4. Build Production Binaries
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
# Windows
|
|
261
|
+
npm run build:win
|
|
262
|
+
|
|
263
|
+
# Linux
|
|
264
|
+
npm run build:linux
|
|
265
|
+
|
|
266
|
+
# macOS
|
|
267
|
+
npm run build:mac
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## 📄 License
|
|
74
273
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
To build and run GitElectron locally:
|
|
78
|
-
|
|
79
|
-
1. Clone the repository and install dependencies:
|
|
80
|
-
```bash
|
|
81
|
-
npm install
|
|
82
|
-
```
|
|
83
|
-
2. Start the development server (Hot Module Replacement enabled):
|
|
84
|
-
```bash
|
|
85
|
-
npm run dev
|
|
86
|
-
```
|
|
87
|
-
3. To build the production binary:
|
|
88
|
-
```bash
|
|
89
|
-
npm run build:win
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Architecture
|
|
93
|
-
|
|
94
|
-
- **Renderer (`src/renderer`):** A modern React + TailwindCSS interface running inside an Electron Window.
|
|
95
|
-
- **Main (`src/main`):** Node.js backend handling system files (`chokidar` for watching), secure credentials, single-instance locking, and Git automation via `simple-git`.
|
|
96
|
-
- **Preload (`src/preload`):** A secure ContextBridge tying the UI strictly to safe IPC handlers.
|
|
97
|
-
- **CLI (`bin/cli.js`):** A Commander-based Node script that transparently spawns the packaged Electron executable, merging NPM utility with Desktop power.
|
|
274
|
+
This project is licensed under the [MIT License](LICENSE). Built with ❤️ for developers who just want to write code without Git getting in the way.
|