כל הפרויקטים
web

GitExplorer

סייר קבצים לשולחן עבודה עם לקוח Git מובנה — לדפדף בקבצים ולנהל את כל זרימת העבודה עם Git מאפליקציה נייטיב אחת.

yonidev.io/git-explorer
GitExplorer

סקירה

GitExplorer היא אפליקציית שולחן עבודה נייטיב שנבנתה עם Tauri 2.0 ו-React 19, המשלבת סייר קבצים רגיל עם לקוח Git מלא. ה-backend בשפת Rust מבצע מעל 60 פעולות Git דרך ה-CLI הנייטיב של המערכת, בעוד ש-frontend ב-React מציג אינדיקטורי סטטוס בזמן אמת על כל קובץ ותיקייה. ממשק המשתמש כולו בעברית עם תמיכה מלאה בפריסת RTL.

סטאק טכנולוגי

TauriReactRustTypeScript

הבעיה

מפתחים עוברים כל הזמן בין סייר קבצים לבין לקוח Git נפרד (או הטרמינל) כדי להבין מה השתנה, לבצע staging לקבצים ולסנכרן עם remote. רוב לקוחות ה-Git מנותקים מתצוגת מערכת הקבצים, ולכן אובד הקשר לגבי מיקום הקבצים בעץ הפרויקט.

הפתרון

חלון Tauri אחד מארח גם סייר קבצים מלא וגם פאנל Git זה לצד זה. שכבת Rust מבצעת פקודות Git CLI נייטיב (ללא תלות ב-libgit2) ומחזירה JSON מובנה ל-React דרך גשר ה-IPC של Tauri — `invoke()`. Hooks מותאמים ב-React — אחד לכל תחום Git — שולפים ומאחסנים את הנתונים, ולאחר מכן ממזגים רשומות מערכת קבצים עם סטטוסי Git ומטא-דייטה של commit אחרון לפני הרינדור.

פיצ'רים מרכזיים

סטטוס Git חי בעץ הקבצים

כל קובץ ותיקייה מציגים תג צבעוני (שונה, staged, לא-מעוקב, נמחק, קונפליקט) שמתעדכן בכל רענון. תגי תיקיות מצרפים את הסטטוסים של כל הקבצים הצאצאים, כך שניתן לזהות שינויים עמוק בעץ במבט אחד.

ניהול Staging Area מלא

ניתן לבצע stage, unstage, או discard לקבצים בודדים או לכולם בבת אחת ישירות מרשימת הקבצים או מפאנל ה-Git הייעודי. מציג diff ברמת שורה מוצג ב-modal לפני ביצוע commit.

זרימת עבודה עם ענפים ומיזוג

יצירה, שינוי שם, מחיקה ומעבר בין ענפים מ-Git toolbar. ה-toolbar מציג גם את הענף הנוכחי, מספר ה-commits קדימה/אחורה מה-remote ומספר הסטשים.

סנכרון עם Remote (Push / Pull / Fetch)

Push, pull ו-fetch עם אפשרויות הניתנות לשינוי (force, set-upstream, rebase) דרך דיאלוגים של modals. האפליקציה עוקבת אחרי ספירות ahead/behind ומעדכנת אותן לאחר כל פעולה.

אינטגרציה עם GitHub CLI

Modal ייעודי מאפשר ליצור repository חדש ב-GitHub ולדחוף אליו את ה-repo הנוכחי בצעד אחד, תוך שימוש ב-GitHub CLI (gh) מאחורי הקלעים — ללא צורך בהגדרת remote ידנית.

Technical Highlights

  • ארכיטקטורת IPC של Tauri 2.0: פקודות Rust מופעלות מ-React דרך `invoke()`, כאשר כל קריאות המערכת נשמרות בתהליך נייטיב מבודד
  • מעל 60 פקודות Git ב-Rust המכסות staging, commits, ענפים, stash, tags, remotes, היסטוריה, diff, blame, cherry-pick, rebase ו-revert
  • Git מבוצע דרך `std::process::Command` (CLI נייטיב, לא libgit2), עם `CREATE_NO_WINDOW` על Windows כדי למנוע הופעת חלונות קונסול
  • Tailwind CSS 4.x עם פלאגין `tailwindcss-rtl` להמרה אוטומטית של utility classes מבוססות-כיוון ל-RTL
  • 15 hooks מותאמים ב-React — אחד לכל תחום (useGitSync, useBranches, useStash, useRemotes, useTags, useAdvancedGit…) — כאשר App.tsx פועל כרכז דק בלבד
  • שכבת נרמול נתיבים ממירה backslashes של Windows ל-slashes קדימה לפני התאמת פלט Git status לרשומות קבצים
  • מצב ניווט מתמיד (נתיב אחרון, היסטוריה) מאוחסן דרך `@tauri-apps/plugin-store`

איך להריץ

דרישות מוקדמות

  • Node.js 18+ ו-pnpm (`npm i -g pnpm`)
  • Rust toolchain גרסה 1.77.2+ (`rustup update stable`)
  • Git מותקן וזמין ב-PATH של המערכת
  • תלויות מערכת של Tauri בהתאם לפלטפורמה (WebView2 על Windows, webkit2gtk על Linux)
1התקנת תלויות
$pnpm install
2הרצה במצב פיתוח
$pnpm tauri dev

מפעיל את שרת Vite על פורט 1420 ופותח את חלון Tauri עם החלפת מודולים חמה

3בניית גרסת ייצור
$pnpm tauri build

מייצר installer נייטיב לפלטפורמה בתיקייה src-tauri/target/release/bundle/

Code Your Dream

מוכן לבנותמשהו אמיתי?

תגיד לי מה אתה צריך — אני אדאג לשאר.

צור קשר