גיט אליאס עם פרמטרים

03/06/2019

הדרך הרגילה לכתוב git alias היא פשוט לכתוב בקובץ הקונפיגורציה את הפקודה המקוצרת, אחריה סימן שווה ואז הפקודה המלאה. למשל השורות הבאות בגיט קונפיג יגדירו את הקיצור st שיפעיל אוטומטית את status:

[alias]
  st = status

אפשר גם להוסיף פרמטרי ברירת מחדל לפקודות לכן האליאס הבא יפעיל את reset hard בלי בעיה:

[alias]
    trashall = git reset --hard

ושועלי האליאסים ביניכם אולי גם זוכרים שאפשר להשתמש בסימן קריאה כדי להריץ פקודת Shell מה שייתן לנו אפשרות להפעיל מספר פקודות גיט בתוך אליאס אחד:

[alias]
  stst = !git status && git status

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

$ git stst -s

פקודת ה status האחרונה תקבל את המתג אבל הראשונה עדיין תדפיס את הסטטוס הרגיל.

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

[alias]
  acm = "!f() { git add \"$@\"; git commit; }; f"

הוא קיצור ל add ו-commit. אנחנו מעבירים לו בשורת הפקודה רשימה של קבצים והאליאס גם עושה לכולם add וגם מפעיל בסוף קומיט. זה נראה ככה:

$ git acm demo.txt hello.py

וזה יגרום להפעלה של:

$ git add demo.txt hello.py && git commit

ואם אהבתם תוכלו למצוא עוד כמה דוגמאות לאליאסים מוזרים שמשתמשים בטריק הזה בקישור כאן:

https://www.atlassian.com/blog/git/advanced-git-aliases