ניהול קוד באמצעות 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 וללחוץ על קובץ ההורדה ולאחר מכן ההתקנה תתבצע ברקע.

2019-11-30_16h48_39.png

הגדרת GitHub Desktop היא פשוטה ובסיומה נפתח באופן אוטומטי חלון הגדרות ראשוניות, ולכן הפעולה הראשונה היא לחבר את GitHub Desktop מול חשבון GitHub (קיים או חדש), וזאת ע”י הזדהות מול חשבון גיטהאב (GitHub\GitHub Enterprise).

2019-11-30_16h51_59.png

ניתן להזדהות מול חשבון GitHub באופן ישיר או להתחבר באמצעות דפדפן, בין אם זה חשבון אישי או חשבון ארגוני.

2019-12-06_18h40_592019-12-06_18h41_51

בסיום הזדהות מול חשבון GitHub יופיעו כל המאגרים הקיימים בחשבון.

2019-12-06_18h42_49

הגדרת GitHub Desktop

לאחר התקנה נמשיך להגדרת GitHub Desktop בכדי להגדיר עורך, לבחור Shell ולבצע הגדרות נוספות

מתוך GitHub Desktop נבחר באפשרות File > Options ונמשיך להגדרות

נוודא שהחשבון שחיברנו אכן נמצא במצב מחובר, ובמידת הצורך ניתן לחבר חשבון Enterpsie נוסף.

2019-12-07_10h13_01

נוודא שאנו עובדים על אותו GIT שחיברנו קודם לכן

2019-12-07_10h13_08

“החלק החשוב” של בחירת Dark mode

2019-12-07_10h13_25

הגדרות Advanced הן חשובות כי הם חלק מתוך התממשקות לעורך קוד, ולכן נבצע את ההגדרות הבאות:

  • הגדרת עורך במקרה הזה VSCode
  • הגדרת Shell במקרה הזה CMD, אך ניתן להגדיר כל עורך PowerShell, Bash וכן הלאה
  • אישור שינויים של הסרת מאגר, ביטול שיוניים ודחיפת שינויים

2019-12-07_10h13_31

וזהו, עד כאן הגדרת GitHub Desktop והגדרת התממשקות מול GitHub ומול VSCode.

טיפ נוסף להתממשקות של VSCode יחד עם GitHUb Desktop הוא הרחבה מתוך VSCode המאפשרת לפתוח את הקובץ ישירות לתוך מאגר קיים או חדש בתוך GitHub Desktop.

2019-12-07_11h17_232019-12-07_11h18_20.png

ניהול שינויים

ניהול שינויים הוא נושא שניתן להרחיב עליו לא מעט ובנוי מאינספור מתודולוגיות ודגשים, אך חשוב להדגיש כי חייב להיות בנוי לפי מדיניות.

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

היתרון של של ניהול גרסאות עם כלים לצד מדיניות הוא בעל יתרונות וערך רב מכיוון שהוא עונה על בעיות רבות, למשל:

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

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

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

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

לבדוק את עצמי באמצעות מעקב אחר שינויים שנעשה מאותו Commit אחרון, ואכן רגע לפני שמבצעים Commit אפשר לעבוד באופן מהיר על השינויים ולוודא שלא קיים משהו שעלול לגרום לקונפליקט בקוד.

2019-12-07_11h12_27.png

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

אלה הם רק דגשים בודדים מתוך יתרונות רבים של ניהול גרסאות.

תחילת עבודה

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

דגשים בפעולות על גבי GitHub Desktop

ישנם פעולות רבות שניתן לבצע באמצעות GitHub Desktop, בין היתר:

יצירת עותק מקומי באמצעות פקודת Clone המאפשרת יצירת עותק של Repostiory מרוחק על התחנה, וניתן ליצור עותק מתוך מאגר מתוך חשבון אישי, צוות או מחשבון אחר דרך URL.

למשל, בחשבון קיים ניתן ליצור הוספת של עותק מתוך GitHub.com ולבחור את המאגר הנדרש, או לחלופין להדביק URL של חשבון אחר, ולאחר מכן נשמור את העותק בספריה מקומית, ולאחר מכן ניתן לבצע Clone

2019-12-07_16h01_29.png

לאחר ביצוע Clone נוכל להתחיל לעבוד על הקוד ולפתוח את אותו קוד מתוך ממשק VSCode, או להציג מתוך File explorer.

2019-12-07_16h05_55

2019-12-07_16h05_14

מכיוון שישנו קובץ אחד בלבד המוגדר עם סיומת MD הקובץ יפתח בממשק VSCode אך לא בשפה המיועדת אלא כקובץ טקסט בלבד, בשונה מאשר בפתיחת קובץ PS1 שם הקובץ יפתח ישירות בממשק VSCode עם PowerShell.

2019-12-07_16h05_45

לאחר שמבצעים שינוי בקוד ניתן לראות מהם השינויים שהוצגו מתוך ממשק GitHub Desktop לפי הסימונים השונים, בין היתר, ירוקים ואדומים.

בדוגמה ניתן לראות כי ישנם שינויים בשורות קוד מסוימות והוספה של שורות נוספות.

2019-12-07_16h22_26.png

מכיוון יש לנו שינויים אנו נרצה לדחוף אותם אל GitHub וזאת ע”י הפעולות של Commit בשביל להחיל את השינויים, ולאחר מכן לדחוף את אותם שינויים אל המאגר המרוחק (Origin) ע”י Push.

2019-12-07_16h27_49.png

לסיכום

ניהול סביבת פיתוח ובפרט קוד ע”י הפלטפורמה של GitHub וכן ע”י הכלים של GitHub Desktop יחד עם VSCode מספקת חווית פיתוח יעילה יותר, וע”י ניהול ודחיפת השינויים אל המאגר המרוחק נוכל למזער בעיות בסביבת הפיתוח.

המאמר הנוכחי התמקד באפשרויות השונות שיש לכל אותם כלים להציע ולכן המאמר הבא יתמקד בדרכים הנכונות וסדר לניהול קוד מול GitHub.

השאר תגובה