בואו נעשה כיף
אתגר פיתוח Backend
23 במרץ 2021
בואו נעשה כיף
23 במרץ 2021
התרגיל הבא הולך לשלב שני סוגי יכולות שכל מתכנת Backend צריך לשלוט בהם ברמה של מאסטר: פיתוח תוכנה בשפת התכנות האהובה עליו ושימוש בGit-.
רקע על גיט
גיט (באנגלית: Git) היא מערכת ניהול גרסאות מבוססת קוד פתוח, שמטרתה לסייע למפתחים בניהול קוד, תיאום עבודה צוותית ומעקב אחר שינויים בקובצי תוכנה. למה צריך את הכלי הזה? כשתגיעו (יום אחד) למקום עבודה בהייטק אתם תבינו שעל מערכת מסוימת יכולים לעבוד עשרות, מאות ואולי אלפי אנשים במקביל על פרויקטים שיכולים לרוץ גם שנים רבות. לכן, במקום שכל אחד יקבל חלק בפרויקט ואז ישלח לאחר במייל (כמו שחלקנו עשינו בעבר, תודו בזה) אנחנו נשתמש בכלי (אחמ אחמ גיט) שהמטרה שלו היא לנהל גרסאות של מתכנתים שונים שעובדים ממחשבים שונים בתקופות שונות.
בכל פעם שאנחנו משנים קובץ בפרויקט שלנו, גיט יעקוב אחרי השינויים, ידע בדיוק אילו שורות השתנו, מי שינה אותן, מתי, באיזה commit (יוסבר בהמשך) וכו'. בעצם אפשר להסתכל על אופן ניהול הגרסאות של גיט בעזרת גרף עץ באופן הבא כאשר master (לעיתים נראה main או mainline) הוא הענף (branch) הראשי:
העיגולים מייצגים commitים. קומיט הוא בעצם נקודת זמן שאנחנו בוחרים לשמור לעצמנו את העבודה (מעין cntl+S בוורד).
הכלי של גיט מתחלק לשניים: חלק לוקאלי וחלק מרוחק. החלק הלוקאלי כולל 3 חלקים: החלק האדום מייצג את הקבצים בפרויקט שאנחנו משנים, החלק הצהוב מייצג שינויים שאני עושה להם "טרום-שמירה" לפני שאני מכניס אותם לקוממיט, והחלק הירוק שאלו שינויים שאני עושה להם שמירה מלאה כקוממיט (אפשר לעשות קוממיט רק לקבצים שעשיתי להם "טרום-שמירה" בעזרת add). לבסוף, אני יכול לדחוף את כל הקוממיטים שלי לשרת remote (בכחול) בעזרת פקודת push (למשל לדחוף את השינויים שלי למערכת GitHub).
אז איך עובדים עם Git? אופציה אחת היא לעבוד דרך הterminal/cmd-. אופן כזה נקרא CLI (Command Line Interface). אופציה שנייה היא לבנות GUI בסיסי יחסית שבו ניתן לבצע את הפעולות בנוחות (למשל עורכי הטקסט של JetBrains כמו Pycharm וIntelij- עושים זאת).
המשימה
במשימה הקרובה עליכם לבנות בשפת התכנות האהובה עליכם CLI שיתמוך בכל פקודות Git הבאות:
Add
Commit
Push
Pull
Reset
Log
Status
בונוס I: ממשו גם את פקודות reflog, commit –amend , rebase, stash, merge
בונוס II: תבנו גם GUI נחמד למערכת שלכם (זה יכול להיות Web application או Desktop Application).
לסיום מתוק: איך אפשר לא לעשות פרויקט בגיט מבלי לעלות אותו לGitHub.
לינקים מועילים:
https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html
https://dzone.com/articles/top-20-git-commands-with-examples
בהצלחה!
השאירו תגובה
רוצה להצטרף לדיון?תרגישו חופשי לתרום!