כמפתח, ייתכן שתשתמש ב-CLI של Git (ממשק שורת פקודה) באופן יומיומי. אך כתיבת הפקודות הידועות עלולה להיות מעייפת, במיוחד כאשר הפקודות ארוכות. כאן מתקיימים הכינויים ב-Git כדי לעזור.
במאמר זה, תלמד כיצד לפשט את הפקודות שלך ב-Git באמצעות כינויים.
תוכן עניינים
תנאי קדם
-
ידע ב-Git.
-
התקנת Git Bash (אופציונלי אך מומלץ למשתמשי Windows).
-
סביבת פיתוח כמו VS Code (זה גם אופציונלי).
מהם כינויי Git?
כינויי Git הם קיצורי דרך מותאמים אישית לפקודות Git קיימות, המאפשרים לך להגדיר פקודות משלך, מאפשרים לך להתאים אישית קיצורי דרך בדיוק כפי שתרצה.
יש לך שני אפשרויות עיקריות להוספת/יצירת כינויי git בתצורת git שלך, באמצעות קובץ התצורה שלך של Git או להוסיף אותם ישירות דרך CLI (טרמינל/שורת פקודה).
איך להוסיף כינויי Git דרך קובץ התצורה הגלובלי של Git (מומלץ)
אפשרות זו כוללת פתיחת קובץ התצורה הגלובלי של git שלך ולהוסיף את כינויי git שלך לתחתית הקובץ.
איך להגדיר את העורך המועדף שלך ב-Git
קבע את עורך הטקסט המועדף שלך בתצורת Git, לדוגמה, אני משתמש ב־VS Code כדי לערוך את קובץ התצורה שלי ב־Git, אך תוכל להשתמש בכל עורך טקסט/עורך קוד אחר שאתה מעדיף.
הרץ את הפקודה הבאה כדי להגדיר את Notepad כעורך המועדף עליך ב־Windows (CMD/PowerShell):
git config --global core.editor "notepad"
הרץ את הפקודה הבאה כדי להגדיר את VS Code כעורך המועדף עליך ב־Windows וב־MacOS/Linux:
git config --global core.editor "code --wait"
כדי להגדיר עורך מועדף שונה, חפש ברשת ״הגדר {עורך} כעורך ברירת מחדל של Git״, והחלף את {עורך}
ביישום המועדף עליך.
איך לפתוח את קובץ התצורה של Git
פתח את תוכנית הטרמינל שלך והזן את הפקודה הבאה. זה יפתח את קובץ התצורה הגלובלי של Git (git config —global
), במצב עריכה (-e
).
git config --global -e
אתה יכול לפתוח את קובץ התצורה של Git ישירות מהמיקומים הבאים:
Mac Os: ספריית הבית → הצג הסתר (Cmd + Shift + H) → .gitconfig
Windows: C:\Users\YourUsername\
→ ואז הצג קבצים מוסתרים (בתצוגה) → ומצא .gitconfig
Linux: ספריית הבית → הצג הסתר (Ctrl + H) → .gitconfig
כיצד להוסיף קיצור דרך של Git דרך קובץ התצורה שלך
אם אתה מוסיף קיצורי Git לראשונה, פתח את קובץ ה־.gitconfig
שלך, הוסף [alias]
בסופו, ולאחר מכן רשום את הקיצורים שלך למטה. זה מודיע ל־Git שאלו הם קיצורי שמות. הוסף את הקיצור דרכית המועדפת עליך (הפקודה המקוצרת שתרצה להריץ).
הפורמט של קיצור Git הוא <קיצור> = <פקודה>
, לכן יש לנו:
co = checkout
cob = checkout -b
הסבר על הדוגמאות לעיל:
co = checkout
מטרתו למפה את הפקודה git checkout
לפקודה קצרה יותר בצורה git co
. תוכל להשתמש ב־git co feature/123
בטרמינל שלך.
אינך צריך להקליד את git
לפני הפקודה, מאחר שהתצורה תקדים זאת אוטומטית מכיוון שהיא מכירה את הפקודה שאתה ממפה כפקודת Git.
הערה: כל הפרמטרים שמועברים לפקודה ייושם בפקודה הסופית שתיקרא בתוך הכינוי בלבד.
ניתן להוסיף עוד כינויים בדרך זו, מקשרים קיצורים לפקודות Git קיימות. שמירה וסגירת הקובץ תעשה את הכינויים זמינים בטרמינל שלך.
כיצד להוסיף כינויים ב־CLI
אם ברצונך לגשת לכינויים של Git בצורה יעילה יותר, תוכל להוסיף אותם ישירות מתוך הטרמינל/שורת הפקודה.
לקחת את הדוגמאות לעיל, ניתן להוסיף אותם ישירות באופן הבא:
הפורמט של הפקודה הוא: git config --global alias.{alias} "{original command}"
:
git config --global alias.co "checkout"
#או
git config --global alias.cob "checkout -b"
זה פשוט ככה!
כיצד ליצור פקודות מותאמות אישית עבור קיצורים מורכבים יותר
טוב, זה נראה טוב, אך זה לא באמת מרשים – אנו רק מסירים כמה תווים. עם זאת, נוכל להפוך אותם להרבה יותר מועילים, נוכל ליצור את הפקודות שלנו באמצעות פקודות של של.
בוא נקח את הדוגמה הבאה, פקודה שאני משתמש בה הרבה!
new-work = !git checkout main && git pull && git cob
האלכסון הזה משלב פקודות Git מרובות לתוך פקודת של shell אחת. התו !
אומר ל-Git לטפל בכך כמו בפקודת shell, ולא כפקודת Git סטנדרטית.
ללא !
, Git מתייחס לאלכסון כפקודת Git (לדוגמה, checkout
מתהפך ל־git checkout
). עם !
, Git יודע להריץ אותו כפקודת shell בלי להוסיף את git
לפני.
על ידי שרשור של פקודות אלו, אנו יכולים לכתוב אלכסונים הרבה יותר שימושיים. האלכסון הנ"ל יבצע:
-
ראשית, לבדוק את הענף
main
. -
על ידי שימוש באופרטור
&&
, זה אומר שהפקודות האחרות ירוצו רק אם הקודם היה מוצלח. -
במשך, יעלה את השינויים מהענף
main
. -
לבסוף, ליצור ענף חדש מהענף
main
באמצעות האלכסון האחר שלנוgit cob
.
הפקודה הסופית יכולה לקבל פרמטרים (כמו שהפקודה המקורית של Git הייתה עושה), ולכן ניתן להשתמש בה כך:
git new-work 'feature/new-work-from-main'
איך להשתמש בפרמטרים בכל הפקודות
עד כה, הצלחנו רק להעביר את הפרמטרים שלנו לפקודת git הסופית באליאס שלנו. אבל מה קורה אם רוצים להעביר פרמטרים לכמה, אם לא לכל, מהפקודות בתוך האליאס? נוכל להשיג זאת על ידי שימוש בפונקציית של.
קח את הדוגמה הבאה:
new-work = "!f() { git checkout \"$1\" && git pull && git checkout -b \"$2\"; }; f"
מעלה אנחנו משתמשים בפונקציית של שעובדת עם פרמטרי קלט.
הסבר:
-
!f()
:-
ה-
!
אומר ל-Git לפרש את האליאס כפקודת של שוליית תקינה ולא כפקודת Git סטנדרטית. -
f()
מגדירה פונקציית שלf
שתאפשר לנו לבצע מספר פקודות ברצף.
-
-
הכל בתוך
{ }
הוא מה שישוחק בתוך פונקצייתf()
. -
git checkout \"\$1”'\
: יפעיל פקודת Git פרמטרית, שבה\$1
מושתת ויחליף את הפרמטר הראשון שעבר לכינוי. התרשימים לסביבת\$1
מאפשרים שמות ענפים עם רווחים. -
&&
הוא אופרטור לוגי שמבטיח שכל פקודה תופעל רק אם הקודם הצליח. אםgit checkout "$1"
נכשל, הפקודות שיבואו אחריו לא יופעלו. -
git checkout -b \"\$2”\
: יוצר ענף חדש עם שם הפרמטר השני כפי שהיה קודם. -
;
: סומן סיום פונקצייתf()
; -
f
: ה-f
הסופי קורא לפונקציית הכינוי מיידית, במובן שכאשר אתה קורא לכינוי, הוא מצהיר על הפונקציה ואז מפעיל אותה מיידית.
שימוש:
git new-work development task/feat-123
כינויים שימושיים נוספים
[alias]
co = checkout
cob = checkout -b
s = status
tidy-up = !git checkout main && git branch | grep -v "main" | xargs git branch -D
latest = !git checkout main && git pull
new-work = "!f() { git checkout \"$1\" && git pull && git checkout -b \"$2\"; }; f"
done = !git push -u origin HEAD
save = !git add -A && git commit
saveM = !git add -A && git commit -m
br = branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate
סיכום
co:
Checkout לסנכרון הסניפים → git co task/feat-123
cob
: יוצר סניף חדש מהסניף הנוכחי → git cob feature/123
s
: מקרא ל־git status
כדי לראות את מצב הסניף הנוכחי ב־Git → git s
tidy-up
: מוחק את כל הסניפים המקומיים חוץ מ־main
→ git tidy-up
latest
: משיג את השינויים האחרונים מהסניף המרכזי המרוחק → git latest
new-work
: יוצר סניף חדש (פרמטר שני) מסניף הפרמטר הראשון → git new-work main feat/123
git done
: מעלה את הסניף הנוכחי למאגר המרוחק (origin
) ומגדיר אותו כסניף מקורי. זה עשוי להיות שימושי כאשר אתה מעלה את ההתחלה שלך ואתה מקבל את השגיאה:fatal: The current branch has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin
save
: יוסיף פשוט את כל הקבצים ששונו, ויקבע אותם, פותח את העורך של Git המוגדר כברירת מחדל שלך ומבקש הודעת קביעה → git save
savem
: יעשה כפי שנאמר לעיל, אך במקום לפתוח את העורך שלך, תוכל להעביר הודעת קומיט בשורה → git savem ‘Task123: add index.html
br:
נראה קצת מורכב, אך זה לא כל כך מורכב כפי שנראה, אלא מדגיש את העוצמה של קיצורי דרך. בעיקר, זה מותאם אישית את פורמט הפלט של git branch
כך שיציג רשימת ענפים מפורטת ומצובעת, ממוינת לפי תאריך הקומיט האחרון ביותר, הוא ייראה משהו דומה לתמונה למטה עבור כל ענף שיש לך מקומית.
ובכך נסכם את המבוא לקיצורי דרך של Git וכמה דוגמאות שימושיות של קיצורי דרך שניתן להוסיף כהתחלה להגדרת התצורה שלך.
כמו תמיד, אם ברצונך לדבר על זה, או לשמוע על מאמרים עתידיים, תוכל לעקוב אחריי ב-טוויטר.
Source:
https://www.freecodecamp.org/news/how-to-simplify-your-git-commands-with-git-aliases/