חמישה דברים שכדאי לוודא שאתם יודעים לעשות עם Git
״מי צריך קורס Git״ היא שאלה שאני שומע לעתים מספיק קרובות בשביל לכתוב עליה פוסט. כי העניין עם גיט זה שיש המון מדריכים ברשת שילמדו אתכם ברבע שעה איך לעשות add, commit ו branch. אבל הרבה יותר קשה לגלות מה עושים הלאה.
בקיצור הנה חמישה דברים שאני חושב שכדאי שכל מי שעובד עם גיט ידע לעשות, וכמובן שכולם נלמדים כאן בקורס גיט:
1. שיטת העבודה Git Flow
ברמת הבסיס אתם צריכים לדעת ליצור Feature Branch, להכניס אליו קומיטים, לבטל קומיטים או לשנות את הודעות הקומיט, לעבור רגע ל master כדי ליצור Hot Fix ולחזור ל Feature Branch שלכם להמשך עבודה.
בנושא יצירת קומיטים אתם צריכים לדעת איך לפצל עבודה של כמה שעות למספר קומיטים כולל באמצעות הוספת חלקים מהקובץ לקומיט כדי לפצל שינויים שנעשו באותו קובץ למספר קומיטים.
אתם צריכים לדעת איך למזג את ה Feature Branch חזרה ל Master, לזהות ממה נוצרים קונפליקטים (אם יש) ואיך לפתור אותם.
2. חיפוש בהיסטוריית הפרויקט
מתכנתים שיודעים לעבוד טוב עם גיט יודעים לחפש בהיסטוריה של הפרויקט כמו שמחפשים קוד בתיקיית העבודה. זה אומר שאנחנו צריכים לדעת למצוא את כל הקומיטים שהשפיעו על קובץ מסוים או אפילו על פונקציה מסוימת בקובץ, או את כל הקומיטים שתוכן הודעת הקומיט שלהם כולל מילה או משפט מסוים.
אנחנו נרצה להיות מסוגלים להסתכל על קובץ ולזהות את כל השינויים בקובץ עצמו לאורך ההיסטוריה, וכמובן לראות את תוכן הקובץ בכל נקודה בהיסטוריה.
ולסיום נרצה לזהות לגבי קוד מסוים: מי כתב את השורה הזאת? למה? מי מחק את השורה ההיא? ולמה? איזה שינוי גרם לבדיקה מסוימת להיכשל? החל מאיזה נקודה התנהגות מסוימת של המערכת השתנתה?
3. ענפים
בגיט ענפים הם בסך הכל מצביעים לקומיטים, ולכן העבודה איתם היא מאוד מהירה. בעבודה יעילה עם גיט אנחנו רוצים להיות מסוגלים למחוק או ליצור ענפים, וגם להזיז ענפים בין קומיטים כך שנוכל למעשה לבטל קומיטים מסוימים או להזיז קומיטים לענף אחר.
נרצה לזהות שינויים בין ענפים, מתי השינויים האלה קרו ואיפה היה פיצול בהיסטוריית הפרויקט.
וכמובן נרצה לחבר בין הענפים אצלנו בפרויקט לענפים המרוחקים (על גיטהאב) ובצורה כזאת להזיז, למחוק וליצור ענפים על השרת המרוחק.
4. שמירה על הניקיון
מתכנתים שעובדים הרבה עם גיט יודעים לתקן טעויות - אנחנו רוצים לדעת איך לערוך הודעת קומיט ישנה, או אפילו תוכן של קומיט ישן. אנחנו רוצים לדעת למעוך מספר קומיטים לקומיט יחיד או להשתמש ב Rebase כדי ליצור היסטוריה לינארית לפרויקט (אפילו אם במקור בנינו אותו כענף נפרד).
בנוסף הרבה פעמים נרצה להפעיל סקריפט על כל הקומיטים במאגר למשל כדי למחוק מידע שהוכנס בטעות מכל היסטוריית הפרויקט.
5. עבודה מבוזרת
ואחרון נרצה לוודא שאנחנו יודעים לעבוד עם Github (או כל שרת מרוחק) בצורה יעילה, נרצה לוודא שאנחנו יודעים לבנות "שרת גיט" שלנו שאחרים יקחו ממנו את הפרויקט, מבינים את ההבדל בין ענף מרוחק לענף מקומי ואיך לסנכרן בין השניים ויודעים ליצור ולקבל Pull Requests לפרויקטים שלנו.
פספסתי משהו? ספרו לי בתגובות