זה לא פוסט שמסביר דברים תאורטיים על גיט – מערכת ניהול גרסאות שמנהלים אותה על פי רוב דרך שורת הפקודה (כי אנחנו הכי מתכנתים עם סכין בין השיניים), או לפעמים באמצעות GUI (אם אנחנו מתכנתים בלאי שמשתמשים ב-windows, שזה בהחלט אני לפעמים). זה גם לא פוסט עם תובנות מעמיקות או על דברים מתוחכמים שאפשר לעשות ב-GIT, ומאידך גם לא פוסט שמסביר את גיט וגיטהאב לבלתי-מתכנתים. זה פשוט פוסט שמאגד לי כמה הגדרות בסיסיות ל-GIT, כדי כל פעם שיש לנו שרת חדש לא אצטרך (יותר) להתרוצץ ברחבי הרשת לחפש איך להגדיר אותן.
התקנה
לכל מערכת הפעלה יש דרך משלה להתקין GIT. הפוסט הזה באתר של Atlassian מפרט את כל הדרכים. אנחנו מריצים Centos אז הנה האופן שבו מתקינים אצלנו:
<span class="token function">sudo</span> yum <span class="token function">install</span> <span class="token function">git</span>
וכדאי להגדיר מיד את שם המשתמש ואת הדואל שיהיו כתובים ב-commit-ים, אחרת ב-commit הראשון מקבלים את ההודעה הזאת:
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:
<span class="token function">git</span> config --global user.name <span class="token string">"Your Name"</span>
<span class="token function">git</span> config --global user.email you@example.com
If the identity used <span class="token keyword">for</span> this commit is wrong, you can fix it with:
<span class="token function">git</span> commit --amend --author<span class="token operator">=</span><span class="token string">'Your Name <you@example.com>'</span>
וההגדרה היא באמצעות הפקודה שכתובה בהודעה הזאת:
<span class="token function">git</span> commit --amend --author<span class="token operator">=</span><span class="token string">'Your Name <you@example.com>'</span>
צבעים
GIT יכול לצבוע את הפלט של הפקודות שלו בצבעים יפים, במקום רק לבן, שיהיה נוח לקרוא:
כדי שזה יקרה בצורה הפשוטה ביותר מספיק לכתוב:
<span class="token function">git</span> config --global color.ui auto
ואם רוצים עוד דרכים לשכלל את זה, אפשר לקרוא את התשובה הזאת ב-unix.stackexchange.
השלמות אוטומטיות
למי יש כוח לכתוב פקודות במלואן? לשם כך אפשר לומר ל-bash להשלים את הפקודות של git:
<span class="token function">sudo</span> yum <span class="token function">install</span> <span class="token function">git</span> bash-completion
הקיצור lg
כשכותבים git log
, מקבלים את הפלט הבא:
גם בזבזני מבחינת מקום, וגם בלי צבעים. לשם כך נוצר ה-alias ששמו lg – כדי שאפשר יהיה לכתוב git lg ולקבל את כל ה-commit בשורה אחת, עם הפרדה צבעונית למספר ה-hash, שם המפתח, והזמן. יתרון נוסף הוא שהזמן מוצג בצורה יותר ידידותית – במקום תאריך ושעה אבסולוטיים, כתוב לפני כמה זמן זה היה.
כדי להשיג את זה, צריך לכתוב בשורת הפקודה:
<span class="token function">git</span> config --global alias.lg <span class="token string">"log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"</span>
ב-git diff להתעלם מקבצים שכל השוני בהם הוא הרשאות
<span class="token function">git</span> config core.filemode <span class="token boolean">false</span>
הודעות commit
מדריך, עם הדגמות של טוב ורע, לכתיבת הודעות commit מועילות.
לפעמים git diff לא מראה הבדלים
לא ברור למה זה קורה, אבל לפעמים אנחנו יודעים שיש הבדלים, וגם רואים ב-git status שהקובץ נחשב modified, אבל כשעושים git diff זה לא מחזיר כלום. ז
ה מוזר ומשונה, וחיפשתי איך בכל זאת מתגברים על זה, ומצאתי תשובה ב-SO שעבדה:
-
- עושים add לקובץ:
git add file_name
- ואז כותבים
git diff --cached file_name
- עושים add לקובץ:
להראות את ענף הגיט הנוכחי ב-prompt של ה-bash
צריך לערוך את ~/.bashrc
עם הפקודות שמתוארות כאן.
***
מה אתכם, האם גם לכם יש הגדרות בסיסיות – של גיט או של כל דבר מעניין אחר – שאתם לא יכולים לחיות בלעדיהם? אשמח לשמוע!