שלום,
נראה שכבר הכרתם את אאוריקה. בטח כבר גיליתם כאן דברים מדהימים, אולי כבר שאלתם שאלות וקיבלתם תשובות טובות.
נשמח לראות משהו מכם בספר האורחים שלנו: איזו מילה טובה, חוות דעת, עצה חכמה לשיפור או כל מה שיש לכם לספר לנו על אאוריקה, כפי שאתם חווים אותה.
»
«
מהם GIT וניהול גרסאות ומה חשוב בזה?
מערכת גיט (Git) היא מערכת ניהול גרסאות מבוססת תוכנה. השימוש בה מאפשר למתכנתים שונים ואף רבים לעבוד בצוות על פרויקט משותף, לצפות בשינויים שבו ולנהל את הגרסאות שלו באופן חכם.
יתרונה הגדול הוא באחסון, מעקב, ברירה וגיבוי של גרסאות, בדרך הארוכה לפיתוח גרסת תוכנה שלמה וסגורה. על אף שהיא משמשת כיום בעיקר אנשי תכנות, גיט יודעת לנהל לא רק קבצי תוכנה, אלא גרסאות של כל סוג אפשרי של קבצים ומסמכים.
גיט הייתה עם השנים לכלי חובה למפתחי תוכנה. בשנת 2018 מצא סקר שכמעט 90% מהמתכנתים השתמשו בגיט. כיום משתמשים בכלי הזה מפתחים באינספור סטארטאפים, תאגידים וחברות ענק בינלאומיות. בין המשתמשים ניתן למצוא מחברות הזנק בתחילת דרכן ועד מפלצות תוכנה כמו גוגל, מיקרוסופט, טוויטר ועוד.
בכל החברות הללו השימוש העיקרי בגיט הוא לצורך שמירה על קוד המקור של פיתוחי התוכנה.
ההצלחה של גיט נבעה מכך שהיא אפשרה ואפילו עודדה לחבר למאגר מרכזי ענפים נפרדים רבים, שיכולים לפעול באופן שהוא לגמרי בלתי תלוי. היא מאפשרת חיבור מהיר, יעיל ופשוט להפליא ביניהם. ועדיין, החידוש בגיט הוא שבניגוד למערכות ניהול גרסאות אחרות, היא שומרת את התכנים המלאים של הקבצים.
עם השנים הוקמו חברות רבות סביב אירוח מקוון של גיט. כיום השליטה בעולם הגיט היא בידיהם של ממשקי גיט מבוססי אתרים, עם אירוח וניהול קוד מקוון, כשהמרכזית שבהן היא חברת האירוח המסחרית והמובילה GitHub.
#מקור המערכת
Git פותחה לראשונה בשנת 2005, כשמפתח מערכת ההפעלה Linux, לינוס טורבאלדס, החליט לפתח במהירות מערכת ניהול גרסאות חדשה. מטרתו הייתה לשמור על פיתוח ליבת מערכת לינוקס.
לפיכך נעלם האיש לשבוע, הקדיש עצמו לפיתוח מאפס של GIT, מערכת חדשה ומהפכנית לניהול גרסאות. בעשורים שאחרי כן הפכה גיט למובילת עולם ניהול הגרסאות בעולם הפיתוח.
#איך גיט עובדת?
גיט הוא מאגר שכל שינוי המבוצע בפרויקט מעודכן אליו. למאגר הזה נקרא "ריפוזיטורי" (Repository).
הריפוזיטורי, אותו מאגר מרכזי, עוקב אחרי השינויים בקבצי הקוד של פרויקט הפיתוח. כל שינוי בקוד יוצר "שיגור" (Commit), המעודכן מיידית אל הריפוזיטורי. ביחד עם כל שינוי כזה, שעשו מפתחים ותורמים בפרויקט, מופיע תיאור קצר שמפרט את השינוי ומי המפתח שאחראי לו.
כך מאפשרת לנו גיט לעבוד בצוות. כל אחד מהמפתחים תורם את חלקו ויש לו רפוזיטורי משלו. כלומר, לכל אחד מהתורמים לפרויקט יש מאגר משלו ומעליהם יש מאגר מרכזי, שכל המאגרים האישיים יסתנכרנו מולו.
כשאחד המפתחים או המפתחות משלימים או מממשים תכונה (Feature), אופרציה מסוימת, יום עבודה או שלב בפיתוח, הם מבצעים שיגור של השינויים שהצטברו במאגר האישי שלהם, אל המאגר המרכזי, בו מתרכזים בסופו של דבר כל השינויים של כולם.
#יתרונותיה
את יתרונות הגיט אנו מזהים כשמתרחש המקרה הלא נעים שפרויקט משתבש ויש צורך לשוב אל גרסאות ישנות יותר. החזרה לשם בזכותה היא מהירה ופשוטה מאוד ואז מבינים כמה חשוב היה כל שיגור, או Commit שנעשה במהלך הפיתוח.
לפני הכל וגם למתכנת בודד, גיט מאפשרת לעקוב אחרי ההיסטוריה של הפיתוח ולזהות את הנקודה והבעיה בקוד, שבה הפסיק פיצ'ר מסוים לעבוד. באותה צורה ניתן למצוא היכן נולד באג מסוים שפספסנו ולתקנו במהירות יחסית.
היכולת הזו של מפתח לעבוד מול המאגר שלו ולאחר התקדמות לשלוח את התיקונים למאגר המשותף, היא שמאפשרת לשתף קוד אחד עם השני, תוך כדי עבודה עצמאית באזור שלהם.
נוצרת כאן כפילות מסוימת, שנותנת יתרון לניהול באמצעות גיט. המאגר המשותף מאפשר שיתוף מצוין. אך הוא נותן גם בקרת כניסה של כל פיתוח, כך שהפיתוחים הטובים של כל ענף בפיתוח עולים למאגר העיקרי ורק הם. כל אחד יכול לראות את השינויים של כל אחד אחר ולהשתתף בתהליך הבקרה על הביצועים וברירה של הפיתוחים המוצלחים יותר.
בעזרת גיט מתכנתים בצוות יכולים לתקשר ביניהם על הפרויקט, בצורה א-סינכרונית, כלומר לא בשיחה רגילה אלא במסרים שכל אחד מגיב עליהם בזמן המתאים לו. בדרך זו ניתן להחליף רעיונות ודברים על התכונות והפיצ'רים שעליהם עובד כל אחד, מבלי שנדרש לתהליך הפיתוח מנהל מרכזי.
כך ניתן לסנכרן, ללא צורך בתכנון ושליטה מראש, את העבודה בין אלפי מתכנתים שמצויים בכל פינות העולם. כך עובדים כולם בהרמוניה פונקציונלית, על פרויקט אחד ומרכזי - מבלי שמישהו יצטרך לפקד על כל צבא המתכנתים והמפתחים העצמאיים הזה.
הנה הסבר של Git (עברית):
https://youtu.be/ep5JBalCD_g
הנה אתר גיטהאב - הבית של הגיטים:
https://youtu.be/pBy1zgt0XPc
וכך מתחילים לעבוד עם גיט (עברית):
https://youtu.be/oZWUOv6uoo4
מה זה רפוזיטורי בעולם התוכנה?
רפוזיטורי (Repository), או בקיצור "רפו" (Repo), הוא סוג של מאגר כזה, תיקיה שזוכרת את כל העבר של פרויקט שאתם עובדים עליו.
כלומר, לא סתם מאגר אלא מאגר עם זיכרון - מאגר שמאפשר לנו לשמור את ההיסטוריה של הפרויקט שלנו בצורה מאורגנת וברורה.
ממש כמו איש ארכיון שזוכר את ההיסטוריה של ספר כלשהו ומה היו השינויים במהדורות השונות שלו, מדובר במאגר דיגיטלי שמאחסן קבצים, קוד ותיקיות, ביחד עם היסטוריית השינויים שלהם.
כלומר, מדובר במעין תיקייה חכמה ששומרת את כל הקוד של פרויקט תכנות. זה ממש כמו גיבוי רגיל בענן, אבל כזה שכפתור ה"שמור גרסה" שלו נעשה אוטומטית אחרי כל שינוי בקוד.
ה"חוכמה" של התיקייה מתבטאת בכך שהיא זוכרת כל שינוי בקוד ועוזרת למפתחים לפתח בביטחון שהגיבויים יאפשרו לחזור ולשחזר כל דבר ולכל שלב בפיתוח.
טכנית, מבנה הנתונים של ה"רפו" שומר מטא-דאטה על קבצים בצורת עץ תיקיות, כולל קומיטים (commits), רישומי השינויים. הוא מאפשר שכפול למחשבים שונים או שרתים מרכזיים.
כלומר, מדובר במאגר שמאחסן קבצים, עם כל ההיסטוריה של השינויים בהם, כולל מי מהמפתחים שינה, מה השתנה ומתי.
לכל פרויקט Git יש רפו משלו, מקומי במחשב או באתרי גיט כמו GitHub המוביל בתחום זה.
#פקודות
הפקודה ליצירת רפו: git init - יוצרת רפו חדש.
העלאה ל-GitHub: הפקודה git push שומרת בענן.
שיתוף רפו: git clone - מפתחים אחרים משכפלים בהורדת עותק של הרפו ושליחה של השינויים שלהם בחזרה בפקודת push והכל מסתנכרן יחד.
עדכונים תמידיים: git pull - פקודה שכולם עושים כדי להישאר מעודכנים והיא מושכת שינויים חדשים וממזג אותם. אם יש התנגשויות, כשכמה מהם עושים שינויים באותו מקום, Git מבקש מהם לתקן ידנית.
#שימושים נפוצים
ב-Git: כל פרויקט הוא רפוזיטורי עצמאי עם היסטוריה משלו, מנותק מאחרים.
פלטפורמות: GitHub, GitLab או Bitbucket מארחים רפוזיטורים ציבוריים ופרטיים
יתרונות: ניהול גרסאות, שיתוף פעולה ושחזור שינויים.
הנה הרפוזיטורי ובקיצור "רפו" (עברית):
https://youtu.be/hNhIwyJfAgs
הסבר של גיט רפוזיטורי:
https://youtu.be/mLnxwlCEIb8
הבית של הרפוזיטוריז - מהו אתר גיטהאב המפורסם?
https://youtu.be/pBy1zgt0XPc
Git

מערכת גיט (Git) היא מערכת ניהול גרסאות מבוססת תוכנה. השימוש בה מאפשר למתכנתים שונים ואף רבים לעבוד בצוות על פרויקט משותף, לצפות בשינויים שבו ולנהל את הגרסאות שלו באופן חכם.
יתרונה הגדול הוא באחסון, מעקב, ברירה וגיבוי של גרסאות, בדרך הארוכה לפיתוח גרסת תוכנה שלמה וסגורה. על אף שהיא משמשת כיום בעיקר אנשי תכנות, גיט יודעת לנהל לא רק קבצי תוכנה, אלא גרסאות של כל סוג אפשרי של קבצים ומסמכים.
גיט הייתה עם השנים לכלי חובה למפתחי תוכנה. בשנת 2018 מצא סקר שכמעט 90% מהמתכנתים השתמשו בגיט. כיום משתמשים בכלי הזה מפתחים באינספור סטארטאפים, תאגידים וחברות ענק בינלאומיות. בין המשתמשים ניתן למצוא מחברות הזנק בתחילת דרכן ועד מפלצות תוכנה כמו גוגל, מיקרוסופט, טוויטר ועוד.
בכל החברות הללו השימוש העיקרי בגיט הוא לצורך שמירה על קוד המקור של פיתוחי התוכנה.
ההצלחה של גיט נבעה מכך שהיא אפשרה ואפילו עודדה לחבר למאגר מרכזי ענפים נפרדים רבים, שיכולים לפעול באופן שהוא לגמרי בלתי תלוי. היא מאפשרת חיבור מהיר, יעיל ופשוט להפליא ביניהם. ועדיין, החידוש בגיט הוא שבניגוד למערכות ניהול גרסאות אחרות, היא שומרת את התכנים המלאים של הקבצים.
עם השנים הוקמו חברות רבות סביב אירוח מקוון של גיט. כיום השליטה בעולם הגיט היא בידיהם של ממשקי גיט מבוססי אתרים, עם אירוח וניהול קוד מקוון, כשהמרכזית שבהן היא חברת האירוח המסחרית והמובילה GitHub.
#מקור המערכת
Git פותחה לראשונה בשנת 2005, כשמפתח מערכת ההפעלה Linux, לינוס טורבאלדס, החליט לפתח במהירות מערכת ניהול גרסאות חדשה. מטרתו הייתה לשמור על פיתוח ליבת מערכת לינוקס.
לפיכך נעלם האיש לשבוע, הקדיש עצמו לפיתוח מאפס של GIT, מערכת חדשה ומהפכנית לניהול גרסאות. בעשורים שאחרי כן הפכה גיט למובילת עולם ניהול הגרסאות בעולם הפיתוח.
#איך גיט עובדת?
גיט הוא מאגר שכל שינוי המבוצע בפרויקט מעודכן אליו. למאגר הזה נקרא "ריפוזיטורי" (Repository).
הריפוזיטורי, אותו מאגר מרכזי, עוקב אחרי השינויים בקבצי הקוד של פרויקט הפיתוח. כל שינוי בקוד יוצר "שיגור" (Commit), המעודכן מיידית אל הריפוזיטורי. ביחד עם כל שינוי כזה, שעשו מפתחים ותורמים בפרויקט, מופיע תיאור קצר שמפרט את השינוי ומי המפתח שאחראי לו.
כך מאפשרת לנו גיט לעבוד בצוות. כל אחד מהמפתחים תורם את חלקו ויש לו רפוזיטורי משלו. כלומר, לכל אחד מהתורמים לפרויקט יש מאגר משלו ומעליהם יש מאגר מרכזי, שכל המאגרים האישיים יסתנכרנו מולו.
כשאחד המפתחים או המפתחות משלימים או מממשים תכונה (Feature), אופרציה מסוימת, יום עבודה או שלב בפיתוח, הם מבצעים שיגור של השינויים שהצטברו במאגר האישי שלהם, אל המאגר המרכזי, בו מתרכזים בסופו של דבר כל השינויים של כולם.
#יתרונותיה
את יתרונות הגיט אנו מזהים כשמתרחש המקרה הלא נעים שפרויקט משתבש ויש צורך לשוב אל גרסאות ישנות יותר. החזרה לשם בזכותה היא מהירה ופשוטה מאוד ואז מבינים כמה חשוב היה כל שיגור, או Commit שנעשה במהלך הפיתוח.
לפני הכל וגם למתכנת בודד, גיט מאפשרת לעקוב אחרי ההיסטוריה של הפיתוח ולזהות את הנקודה והבעיה בקוד, שבה הפסיק פיצ'ר מסוים לעבוד. באותה צורה ניתן למצוא היכן נולד באג מסוים שפספסנו ולתקנו במהירות יחסית.
היכולת הזו של מפתח לעבוד מול המאגר שלו ולאחר התקדמות לשלוח את התיקונים למאגר המשותף, היא שמאפשרת לשתף קוד אחד עם השני, תוך כדי עבודה עצמאית באזור שלהם.
נוצרת כאן כפילות מסוימת, שנותנת יתרון לניהול באמצעות גיט. המאגר המשותף מאפשר שיתוף מצוין. אך הוא נותן גם בקרת כניסה של כל פיתוח, כך שהפיתוחים הטובים של כל ענף בפיתוח עולים למאגר העיקרי ורק הם. כל אחד יכול לראות את השינויים של כל אחד אחר ולהשתתף בתהליך הבקרה על הביצועים וברירה של הפיתוחים המוצלחים יותר.
בעזרת גיט מתכנתים בצוות יכולים לתקשר ביניהם על הפרויקט, בצורה א-סינכרונית, כלומר לא בשיחה רגילה אלא במסרים שכל אחד מגיב עליהם בזמן המתאים לו. בדרך זו ניתן להחליף רעיונות ודברים על התכונות והפיצ'רים שעליהם עובד כל אחד, מבלי שנדרש לתהליך הפיתוח מנהל מרכזי.
כך ניתן לסנכרן, ללא צורך בתכנון ושליטה מראש, את העבודה בין אלפי מתכנתים שמצויים בכל פינות העולם. כך עובדים כולם בהרמוניה פונקציונלית, על פרויקט אחד ומרכזי - מבלי שמישהו יצטרך לפקד על כל צבא המתכנתים והמפתחים העצמאיים הזה.
הנה הסבר של Git (עברית):
https://youtu.be/ep5JBalCD_g
הנה אתר גיטהאב - הבית של הגיטים:
https://youtu.be/pBy1zgt0XPc
וכך מתחילים לעבוד עם גיט (עברית):
https://youtu.be/oZWUOv6uoo4

רפוזיטורי (Repository), או בקיצור "רפו" (Repo), הוא סוג של מאגר כזה, תיקיה שזוכרת את כל העבר של פרויקט שאתם עובדים עליו.
כלומר, לא סתם מאגר אלא מאגר עם זיכרון - מאגר שמאפשר לנו לשמור את ההיסטוריה של הפרויקט שלנו בצורה מאורגנת וברורה.
ממש כמו איש ארכיון שזוכר את ההיסטוריה של ספר כלשהו ומה היו השינויים במהדורות השונות שלו, מדובר במאגר דיגיטלי שמאחסן קבצים, קוד ותיקיות, ביחד עם היסטוריית השינויים שלהם.
כלומר, מדובר במעין תיקייה חכמה ששומרת את כל הקוד של פרויקט תכנות. זה ממש כמו גיבוי רגיל בענן, אבל כזה שכפתור ה"שמור גרסה" שלו נעשה אוטומטית אחרי כל שינוי בקוד.
ה"חוכמה" של התיקייה מתבטאת בכך שהיא זוכרת כל שינוי בקוד ועוזרת למפתחים לפתח בביטחון שהגיבויים יאפשרו לחזור ולשחזר כל דבר ולכל שלב בפיתוח.
טכנית, מבנה הנתונים של ה"רפו" שומר מטא-דאטה על קבצים בצורת עץ תיקיות, כולל קומיטים (commits), רישומי השינויים. הוא מאפשר שכפול למחשבים שונים או שרתים מרכזיים.
כלומר, מדובר במאגר שמאחסן קבצים, עם כל ההיסטוריה של השינויים בהם, כולל מי מהמפתחים שינה, מה השתנה ומתי.
לכל פרויקט Git יש רפו משלו, מקומי במחשב או באתרי גיט כמו GitHub המוביל בתחום זה.
#פקודות
הפקודה ליצירת רפו: git init - יוצרת רפו חדש.
העלאה ל-GitHub: הפקודה git push שומרת בענן.
שיתוף רפו: git clone - מפתחים אחרים משכפלים בהורדת עותק של הרפו ושליחה של השינויים שלהם בחזרה בפקודת push והכל מסתנכרן יחד.
עדכונים תמידיים: git pull - פקודה שכולם עושים כדי להישאר מעודכנים והיא מושכת שינויים חדשים וממזג אותם. אם יש התנגשויות, כשכמה מהם עושים שינויים באותו מקום, Git מבקש מהם לתקן ידנית.
#שימושים נפוצים
ב-Git: כל פרויקט הוא רפוזיטורי עצמאי עם היסטוריה משלו, מנותק מאחרים.
פלטפורמות: GitHub, GitLab או Bitbucket מארחים רפוזיטורים ציבוריים ופרטיים
יתרונות: ניהול גרסאות, שיתוף פעולה ושחזור שינויים.
הנה הרפוזיטורי ובקיצור "רפו" (עברית):
https://youtu.be/hNhIwyJfAgs
הסבר של גיט רפוזיטורי:
https://youtu.be/mLnxwlCEIb8
הבית של הרפוזיטוריז - מהו אתר גיטהאב המפורסם?
https://youtu.be/pBy1zgt0XPc