שורת הפקודה
מהטרמינל נשאלות שתי סוגי שאלות, ו-gitcito עונה על שתיהן.
הראשונה היא "תראה לי את זה" — אתה בתוך עותק מקומי, יש משהו שצריך להסתכל עליו, והאפליקציה היא המקום הנכון להסתכל בו. קריאות כאלה פותחות חלון, קרוב ככל האפשר למה ששאלת עליו.
השנייה היא "תגיד לי עכשיו" — הוק, משימת CI, או אתה עצמך באמצע צינור, שרוצה תשובה וקוד יציאה במקום חלון. קריאות כאלה לא מפעילות את האפליקציה כלל: הן כותבות לפלט הסטנדרטי ומתפנות מהדרך.
gitcito . # פתח את התיקייה הזו
gitcito blame src/api.ts -l 84 # …על ה-blame של אותה שורה
gitcito doctor # בלי חלון: בודק את המאגר, יוצא עם 1 בכישלון
התקנה
לוח הפקודות (⌘K) ← התקן את הפקודה 'gitcito' ב-PATH. ב-macOS נוצר
קישור סימבולי לשים קטן ב-/usr/local/bin או ב-/opt/homebrew/bin, והרשאות מנהל
נדרשות רק אם אף אחד מהם אינו פתוח לכתיבה עבורך. בלינוקס הוא נכנס ל-~/.local/bin
שאינו דורש הרשאות כלל. אותה פקודה מסירה אותו. Windows עדיין אינו נתמך.
לאחר מכן, אם תרצה:
gitcito completions zsh >> ~/.zshrc # או bash, או fish
מה אפשר לפתוח
| פקודה | פותחת |
|---|---|
gitcito [נתיב] |
את המאגר (ברירת מחדל: התיקייה הנוכחית) |
gitcito open <שם> |
מאגר לפי שם הלשונית — gitcito open api |
gitcito diff |
את השינויים שטרם נשמרו |
gitcito graph |
את גרף הקומיטים |
gitcito show <ref> |
קומיט בודד — HEAD~2, תג, האש קצר |
gitcito blame <קובץ> |
blame של קובץ; עם -l 84 היישר לשורה |
gitcito search <שאילתה> |
חיפוש בקוד, כשהשאילתה כבר מוקלדת |
gitcito stack, stash, reflog, conflicts, todos, chat, settings |
את אותה חלונית |
gitcito ci, clean, bisect, absorb, snapshots, insights, terminal |
…וכן הלאה |
הפקודה gitcito help verbs מדפיסה את הרשימה המלאה. שלוש אפשרויות חלות על כולן:
-n <שם> קובע את שם הלשונית המוצג, -g <קבוצה> משבץ אותה בלשונית קבוצה (שנוצרת
לפי הצורך), ו--l <n> בוחר שורה.
Gitcito הוא מופע יחיד: הרצת gitcito כשהאפליקציה פתוחה מעבירה את הבקשה לאותו
חלון במקום להפעיל עותק שני. נתיב שכבר פתוח — כלשונית או בתוך קבוצה — מקבל
מיקוד, לא כפילות. תיקייה שאינה מאגר עדיין נפתחת גם היא, ומציעה את מסלול "אתחל
כאן מאגר".
תשובה בטרמינל
אלה מדפיסות ומסתיימות. שום חלון לא נפתח, והאפליקציה אפילו לא צריכה לרוץ.
gitcito status
ענף, מעקב, לפני/אחרי, עץ העבודה, מטמונים — ואם המאגר מספק כזו — רשימת הבדיקה
שלפני דחיפה מתוך .gitcito.json. יוצא עם 1 כשיש התנגשויות בעץ
העבודה, כך ש-gitcito status || echo חסום עובד.
gitcito doctor [--fix]
מריץ את אותן בדיקות שמריצה חלונית תצורת המאגר: גרסת Node,
תת-מודולים, LFS, core.hooksPath, קבצים נדרשים. יוצא עם 1 אם בדיקה נכשלת,
וזו כל הנקודה — לכללים שמאגר מצהיר עליהם אין ערך רב אם רק מי שהממשק הגרפי פתוח
אצלו רואה אותם:
- run: gitcito doctor # ב-CI, לפני כל דבר יקר
הדגל --fix מיישם את התיקונים שהרופא יודע לבצע (אתחול תת-מודולים, lfs pull,
הגדרת core.hooksPath, העתקת קובץ מהדוגמה שלו) ובודק שוב. הוא לעולם אינו מריץ
פקודה שהגיעה מקובץ התצורה — קבוצת התיקונים סגורה.
אזהרות אינן מכשילות את הריצה. אזהרה פירושה שהרופא לא הצליח לקבוע משהו, לא שמשהו שגוי; הכשלת בנייה עליהן הייתה הופכת את הקובץ ליקר מדי לאימוץ.
gitcito commit-check [קובץ]
בודק הודעת קומיט. בלי ארגומנט הוא קורא את .git/COMMIT_EDITMSG; -m "…" בודק
מחרוזת. הוא יודע מה המאגר הצהיר: scope לא מוכר הוא שגיאה כאשר .gitcito.json
מפרט scopes, ורק עצה סגנונית כשלא. חבר אותו להוק:
# .husky/commit-msg
gitcito commit-check "$1"
gitcito config init | show | check
הפקודה init קוראת את המאגר ומציעה .gitcito.json מתוך מה שכבר קיים — .nvmrc,
.gitmodules, .env.example בלי .env, וה-scopes שההיסטוריה משתמשת בהם.
--dry-run מדפיס במקום לכתוב. show מדפיס את הקובץ הנוכחי, ו-check מאמת אותו
ומפרט כל שדה שהיה נזרק.
gitcito repos [מסנן]
כל מאגר ש-Gitcito מכיר — קודם הלשוניות הפתוחות, אחר כך האחרונים — עם הקבוצה שלו.
--paths מדפיס נתיבים חשופים, אחד בכל שורה, לצורך סקריפטים:
cd "$(gitcito repos --paths api | head -1)"
Gitcito כעורך של git
gitcito editor install
מגדיר את core.editor ו-sequence.editor ל-gitcito --wait. מכאן ואילך
git commit (בלי -m), git commit --amend, git tag -a ו-git rebase -i
פותחים את הקובץ שלהם ב-Gitcito במקום ב-vim, עם מונה תווים ואותן הערות על הודעת
הקומיט שמציג המחבר.

מה שחשוב הוא המילה ממתין: git תקוע על תיבת הדו-שיח הזו. לכן
- שמירה והמשך כותבת את הקובץ בחזרה ו-git ממשיך.
- ביטול כותב קובץ ריק, ו-git קורא זאת כנטישה.
- סגירת החלון בכל דרך אחרת — Escape, הרקע, יציאה מ-Gitcito — נחשבת ביטול. טרמינל שממתין לנצח היה תוצאה גרועה בהרבה מהודעה שצריך להקליד מחדש.
הוסף --local כדי להגביל למאגר אחד, ובטל עם gitcito editor uninstall.
מה הוא לא יעשה
- שום פועל טרמינל אינו משנה את המאגר.
doctor --fixהוא היוצא היחיד מן הכלל, והתיקונים שלו הם רשימה קבועה שקובץ תצורה אינו יכול להרחיב. -
reposהוא לקריאה בלבד. האפליקציה הרצה היא הבעלים של קובץ ההגדרות שלה; ה-CLI קורא אותו ולעולם אינו כותב אליו. - פועל שהאפליקציה המותקנת אינה מכירה מתעלמים ממנו, לא דוחים אותו — שים חדש מול אפליקציה ישנה עדיין יפתח את המאגר.
- ל-Windows אין עדיין שים. כל הפעלים ממומשים; חסר רק מסלול ההתקנה.
ראו גם: מרחבי עבודה, לשוניות וקבוצות · תצורת המאגר · ביצוע קומיטים