ניהול קוד באמצעות GitHub Desktop & VSCode
מהי הדרך לניהול גרסאות? איך מנהלים שינויים? האם בעבודת יחיד גם כדאי לעקוב אחר שינויים? מהו השינוי האחרון שבוצע בקוד? מהם הכלים שאיתם ניתן לעבוד? האם אפשר לעקוב אחר כל השינויים והגרסאות? או האם ניתן לדעת מה אחרים ביצעו?
אלה ועוד שאלות נוספות הם חלק מבעיות מוכרות של אנשי פיתוח בניהול גרסאות יומיומית, בין אם אנשי פיתוח בודדים או כאלה אשר עובדים בצוות ונמצאים במצב של קונפליקט בעת העלאת גרסאות, אבל החדשות הטובות הם שניתן לפתור את רוב הבעיות מבלי לעבור דרך חישוקי אש.
אם כך מהם הכלים שאיתם ניתן לנהל שינויים ומעקב אחר גרסאות? הפלטפורמה של GitHub יחד עם הכלי GitHub Desktop וכמובן הכלי VSCode, כולם יחד מאפשרים מעקב וניהול גרסאות ברמת הבורג.
המאמר מתמקד בניהול שינויים ברמת יחיד אך יכול להתאים במאפיינים רבים מול עבודת צוות, ועל סמך שילוב הכלים של VSCode יחד עם GitHub Desktop מול GitHub קיים.
נתחיל עם הפלטפורמה של Github שמאפשרת לאנשי פיתוח לאחסן ולנהל את הפרויקט קוד במקום מרכזי וע"י כך לעקוב אחר שינויים בפרויקט ובקוד עצמו, ואחד הרכיבים החשובים שאיתו מנהלים שינויים הוא רכיב Version Control שמספק בקרה וניהול גרסאות.
נצרף אל הפלטפורמה של GitHub את הכלי VSCode שמאפשר לפתח אפליקציות ומערכות על גבי שפות שונות ולערוך קוד עם הרחבות מתקדמות ובין היתר מנגיש את הקוד בצורה טובה יותר.
אל הפלטפורמה של GitHub והכלי VSCode נצרף את הכלי GitHub Desktop ואז נשלב בין כולם >>> והתוצאה ניהול גרסאות ושינויים מתוך פלטפורמה וכלים משולבת ואחידה ובצורה יעילה ונכונה יותר.
מהו GitHub Desktop
הכלי GitHub Desktop מאפשר לנהל ולעקוב אחר שינויים בגרסאות פיתוח ושינויים ברמת הקוד, בין אם ברמת יחיד או רבים. מכיוון שהמידע והקוד מאוחסנים בפלטפורמת GitHub ניתן לבצע אינטראקציה של GitHub Dekstop מול הפלטפורמה של GiHub ולעבוד עם עורך קוד (VSCode).
מטרת GitHub Desktop היא לאפשר ניהול שינויים צורת ולאפשר עבודה נכונה יותר, והאפשרויות הקיימות של GitHub Desktop הם בין היתר:
- ניהול גרסאות קוד מול גיטהאב, או פלטפורמות אחרות
- התממשקות מול כלים לעריכת קוד, למשל VSCode
- ביצוע פעולות שונות, למשל, Commit מול קוד משותף
- ביצוע פעולות Pull Request מול בראנצ'ים
- יצירה וניהול Repo
- מעקב אחר היסטורית גרסאות
- יצירת תהליך הלעאת גרסאות מבוסס GitHub
- פעולות גיטהאב נוספות
מכיוון שהכלי GitHub Desktop מבוסס על Electorn ועל Type Script הוא יכול לעבוד על מערכות הפעלה שונות ללא מגבלה.
חשוב להדגיש כי GitHub Desktop אינו כלי או מנגנון לניהול תהליך פיתוח כדוגמת SDLC, אך כן מביא איתו דגשים של תצורת ניהול ואינטגרציה כדוגמת CI\CD.
באמצעות הכלי GitHub Desktop ניתן לשתף, לערוך ולנהל קוד ולהימנע מאי תאימות בהעלאת קוד.
הגדרת GitHub Desktop
התקנה והגדרת GitHub Desktop היא פשוטה מאוד ונחלקת למספר שלבים:
- התקנה והזדהות מול חשבון GitHub
- הגדרת חשבון
- התממשקות מול עורך קוד, בדוגמה שלנו VSCode
לאחר ביצוע כל הפעולות הנ"ל ניתן להתחיל ולנהל גרסאות ולעקוב אחר שינויים.
התקנה והזדהות מול חשבון GitHub
התקנת GitHub Desktop היא לא בדיוק התקנה כי כל מה שצריך לעשות הוא להוריד GitHub Desktop וללחוץ על קובץ ההורדה ולאחר מכן ההתקנה תתבצע ברקע.
הגדרת GitHub Desktop היא פשוטה ובסיומה נפתח באופן אוטומטי חלון הגדרות ראשוניות, ולכן הפעולה הראשונה היא לחבר את GitHub Desktop מול חשבון GitHub (קיים או חדש), וזאת ע"י הזדהות מול חשבון גיטהאב (GitHub\GitHub Enterprise).
ניתן להזדהות מול חשבון GitHub באופן ישיר או להתחבר באמצעות דפדפן, בין אם זה חשבון אישי או חשבון ארגוני.
בסיום הזדהות מול חשבון GitHub יופיעו כל המאגרים הקיימים בחשבון.
הגדרת GitHub Desktop
לאחר התקנה נמשיך להגדרת GitHub Desktop בכדי להגדיר עורך, לבחור Shell ולבצע הגדרות נוספות
מתוך GitHub Desktop נבחר באפשרות File > Options ונמשיך להגדרות
נוודא שהחשבון שחיברנו אכן נמצא במצב מחובר, ובמידת הצורך ניתן לחבר חשבון Enterpsie נוסף.
נוודא שאנו עובדים על אותו GIT שחיברנו קודם לכן
"החלק החשוב" של בחירת Dark mode
הגדרות Advanced הן חשובות כי הם חלק מתוך התממשקות לעורך קוד, ולכן נבצע את ההגדרות הבאות:
- הגדרת עורך במקרה הזה VSCode
- הגדרת Shell במקרה הזה CMD, אך ניתן להגדיר כל עורך PowerShell, Bash וכן הלאה
- אישור שינויים של הסרת מאגר, ביטול שיוניים ודחיפת שינויים
וזהו, עד כאן הגדרת GitHub Desktop והגדרת התממשקות מול GitHub ומול VSCode.
טיפ נוסף להתממשקות של VSCode יחד עם GitHUb Desktop הוא הרחבה מתוך VSCode המאפשרת לפתוח את הקובץ ישירות לתוך מאגר קיים או חדש בתוך GitHub Desktop.
ניהול שינויים
ניהול שינויים הוא נושא שניתן להרחיב עליו לא מעט ובנוי מאינספור מתודולוגיות ודגשים, אך חשוב להדגיש כי חייב להיות בנוי לפי מדיניות.
כל מי שכותב קוד לבד או חלק מתוך צוות פיתוח יודע שעדיף לעבוד עם כלי כלשהוא לניהול גרסאות, והיתרון של ניהול גרסאות הוא עצום בעבודת יחיד ובפרט בעבודת צוות.
היתרון של של ניהול גרסאות עם כלים לצד מדיניות הוא בעל יתרונות וערך רב מכיוון שהוא עונה על בעיות רבות, למשל:
- צורת עבודה נכונה ועבודה על עותק מקומי שניתן לדחוף
- בעיות של היכן שמור הקוד
- מה קורה כאשר שניים עובדים במקביל על אותו קוד?
- האם לעבוד במודל אחסון מסוים?
- תיעוד שינויים והיסטוריה
- ועוד ים בעיות אחרות שגורמות לקונפליקטים רבים.
לצורך הענין אם נקח תהליך שגוי, אז בתהליך שגוי מפתחים עלולים להחזיק עותקים כפולים של גרסאות ללא ידיעת האחר, לעבוד עליהם ולבצע שינויים, ובמצב כזה בעת דחיפת הקוד עלולים לבטל שינויים אחד של השני וליצור בעיות בקוד עצמו.
יתרונות בניהול גרסאות היא באמצעות שימוש בכלי לניהול גרסאות, ניתן לבצע שינויים באופן זהיר, וכל מה שנדרש לבצע הוא פעולת commit לקוד הנוכחי, כלומר שמירת הגרסה הנוכחית של הקוד בכלי ניהול הגרסאות, ומאותו מצב ניתן לערוך את הקוד ללא חשש.
במידת הצורך נוכל לחזור אחורה לקוד הקודם, ותמיד נוכל לעשות revert, ואפילו לשמור את השינויים עצמם בצד לשימוש עתידי, ולכן יש כאן חסכון בזמן רב על גיבוי קוד ידני, או כל צורה אחרת של שמירת קוד.
לבדוק את עצמי באמצעות מעקב אחר שינויים שנעשה מאותו Commit אחרון, ואכן רגע לפני שמבצעים Commit אפשר לעבוד באופן מהיר על השינויים ולוודא שלא קיים משהו שעלול לגרום לקונפליקט בקוד.
שמירת קוד וגיבוי הינו משהו חשוב מאוד ולכן שמירת המידע על פלטפורמת GitHub מאפשרת לאחסן את הקוד, וחשוב להדגיש כי GitHub ודומיו אינו אחסון קבצים רגיל אלא כזה המאפשר ניהול גרסאות, היסטוריית שינויים וכן הלאה.
אלה הם רק דגשים בודדים מתוך יתרונות רבים של ניהול גרסאות.
תחילת עבודה
אז יש לנו את כל מה שנדרש לניהול גרסאות, מעקב אחר שינויים וניהול נכון של המאגרים בחשבון, וזאת יחד עם הפלטפורמה של GitHub, יחד עם הכלי VSCode, וכמובן הכלי של GitHub Desktop וכל אותן הגדרות בסיסיות שבוצעו בינהם.
דגשים בפעולות על גבי GitHub Desktop
ישנם פעולות רבות שניתן לבצע באמצעות GitHub Desktop, בין היתר:
יצירת עותק מקומי באמצעות פקודת Clone המאפשרת יצירת עותק של Repostiory מרוחק על התחנה, וניתן ליצור עותק מתוך מאגר מתוך חשבון אישי, צוות או מחשבון אחר דרך URL.
למשל, בחשבון קיים ניתן ליצור הוספת של עותק מתוך GitHub.com ולבחור את המאגר הנדרש, או לחלופין להדביק URL של חשבון אחר, ולאחר מכן נשמור את העותק בספריה מקומית, ולאחר מכן ניתן לבצע Clone
לאחר ביצוע Clone נוכל להתחיל לעבוד על הקוד ולפתוח את אותו קוד מתוך ממשק VSCode, או להציג מתוך File explorer.
מכיוון שישנו קובץ אחד בלבד המוגדר עם סיומת MD הקובץ יפתח בממשק VSCode אך לא בשפה המיועדת אלא כקובץ טקסט בלבד, בשונה מאשר בפתיחת קובץ PS1 שם הקובץ יפתח ישירות בממשק VSCode עם PowerShell.
לאחר שמבצעים שינוי בקוד ניתן לראות מהם השינויים שהוצגו מתוך ממשק GitHub Desktop לפי הסימונים השונים, בין היתר, ירוקים ואדומים.
בדוגמה ניתן לראות כי ישנם שינויים בשורות קוד מסוימות והוספה של שורות נוספות.
מכיוון יש לנו שינויים אנו נרצה לדחוף אותם אל GitHub וזאת ע"י הפעולות של Commit בשביל להחיל את השינויים, ולאחר מכן לדחוף את אותם שינויים אל המאגר המרוחק (Origin) ע"י Push.
לסיכום
ניהול סביבת פיתוח ובפרט קוד ע"י הפלטפורמה של GitHub וכן ע"י הכלים של GitHub Desktop יחד עם VSCode מספקת חווית פיתוח יעילה יותר, וע"י ניהול ודחיפת השינויים אל המאגר המרוחק נוכל למזער בעיות בסביבת הפיתוח.
המאמר הנוכחי התמקד באפשרויות השונות שיש לכל אותם כלים להציע ולכן המאמר הבא יתמקד בדרכים הנכונות וסדר לניהול קוד מול GitHub.