PracticU

פקודות git init & git commit

בלי כתוביותעם כתוביות
PracticU › קורס Git ו-GitHub עם Visual Studio › פקודות git init & git commit
מילון מושגים:
Git - מערכת מבוזרת לניהול גרסאות של קוד, שעוקבת אחר שינויים ומאפשרת עבודה משותפת בענפים.
קומיט - פעולה ב-Git ששומרת תמונת מצב של השינויים במאגר יחד עם תיאור. גם אישור סופי של שינויים במסד נתונים.
ריפוזיטורי - מאגר שמרכז את קוד המקור של פרויקט ואת היסטוריית השינויים שלו, לרוב מנוהל ב-Git.
ענף - קו פיתוח נפרד במערכת ניהול גרסאות, שמאפשר לעבוד על שינויים במקביל בלי לפגוע בקו הראשי.
לוג - רישום מתועד של אירועים ופעולות שמתרחשים במערכת או בתוכנה, המשמש למעקב ולאיתור תקלות.
הקסדצימלי - שיטת ספירה בבסיס 16, המשתמשת בספרות 0-9 ובאותיות A-F, ונפוצה לייצוג ערכים בינאריים בקצרה.

פקודות git init & git commit
איך מתחילים לנהל קוד ב-Git מאפס: יוצרים ספרייה, מאתחלים בה repository, ועוברים בפועל את המסלול של קובץ מ"חדש" ועד commit. ההרצאה מדגימה את שלושת האזורים של Git ואת המצבים שהקובץ עובר ביניהם.
השלבים העיקריים
1. אתחול: יוצרים ספרייה עם mkdir, נכנסים אליה עם cd, ומריצים git init. נראה שלא נוצר דבר, אבל נוצרה ספרייה נסתרת .git.
2. הצגת קבצים נסתרים: dir רגיל לא מראה אותה. כדי לראות אותה כותבים dir /a:h.
3. בדיקת מצב: git status מציג מה בספריית העבודה, מה השתנה ומה דורש commit. בספרייה חדשה הוא מציג את הענף master ואין מה לעשות commit.
4. קובץ חדש: אחרי יצירת 1.txt (עם touch), הפקודה git status מציגה אותו כ-untracked, כלומר Git עדיין לא עוקב אחריו.
5. הוספה ל-stage: git add 1.txt מעביר את הקובץ ל-"changes to be committed", לאזור שנקרא index.
6. commit: git commit -m "הודעה" שומר snapshot של הקבצים ב-repository. ההודעה חובה. אחרי זה git status מראה ספריית עבודה נקייה.
7. היסטוריה: git log מציג את ה-commit עם מזהה הקסדצימלי ייחודי, השם והאימייל מקובץ ה-config, והתאריך.
8. הוספת כמה קבצים: git add . מוסיף את כל הקבצים בבת אחת.
9. ביטול stage: git restore --staged מחזיר קובץ מה-stage לספריית העבודה. אפשר להחזיר את כולם עם נקודה או קובץ אחד לפי שם.
10. אותו קובץ בשתי גרסאות: אם משנים קובץ אחרי git add, הוא מופיע גם ב-staged (ירוק) וגם כשינוי שלא נוסף (אדום). ה-commit לוקח רק את הגרסה שבשלב ה-stage. כדי לכלול את השינוי האחרון צריך להריץ שוב git add על הקובץ.
שלושת האזורים
העבודה ב-Git נעשית בין שלושה אזורים: Working Directory, אזור הביניים index (staged), וה-repository שהוא המחסן. ה-repository יכול להיות מקומי או ברשת. עוברים מאזור לאזור רק לפי הסדר: add ואז commit, ואי אפשר לדלג.
שימו לב
- הפקודה git commit על קובץ שרק נמצא בספריית העבודה, בלי add, נכשלת כי אין מה להעלות.
- בדוגמה נוצרו קבצי SQL, ואחרי ה-commit האחרון git log הציג את ההודעה שנכתבה.
אחרי ההרצאה אפשר לאתחל repository, להוסיף קבצים ולשמור אותם ב-commit, ולהבין באיזה אזור כל קובץ נמצא.
השיעור הבא בקורס: פקודת git clone

פרקי ההרצאה: פקודות git init & git commit

  1. 00:00

    הקמת Working Directory

  2. 00:45

    הרצת git init

  3. 01:21

    הצגת קבצים נסתרים ותיקיית .git

  4. 03:09

    בדיקת מצב עם git status

  5. 04:27

    הוספת קובץ ל-Index עם git add

  6. 05:03

    שלושת האזורים של Git

  7. 06:15

    מעבר לריפוזיטורי עם commit

תמלול ההרצאה: פקודות git init & git commit

הטקסט המלא של הדקות הראשונות בהרצאה «פקודות git init & git commit» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:29

    אנחנו ניצור ספרייה mkdir פקודת ספרייה שבה אנחנו בעצם ניצור לעצמנו איזשהו Working Directory שבו נשמור את כל הקבצים ואת כל העבודה שלנו. ניכנס בתוך הWorking Directory הזה, CD, על מנת להיות בפנים ועל מנת לתכל את אזור העבודה יש לנו פקודה ראשונית שאותה אנחנו חייבים להריץ בתחילת כל

  3. 00:55

    עבודתנו בהקמה של אזור העבודה של הגיט, זוהי Git Initialize. כאן ששינו git initialize לכאורה נראה שלא יצרנו כאן שום קבצים אבל זה לא מדויק מאחר והקבצים הללו כרגע הם hidden אנחנו לא רואים אותם אלו קבצים שהם נסתרים כרגע מבחינתנו על מנת שנראה אותם אבל הם בהחלט נוצרו אם נרצה לדעת כיצד אנחנו על ידי dir רואים גם קבצים

  4. 01:21

    נסתרים אז שוב dir slash סימן שאלה על מנת לקבל help וכאן כתוב לי Display files with the specific attributes כאשר מאחד מהאטריביוטים שיכול להיות זה h והבידול בין ה-a ל-h הנה נעשה כאן בדוגמה הזאת /a.h זאת אומרת שאם אני רוצה עכשיו להציג בכל זאת את אותם קבצים אז אני יכול לרשום

  5. 01:47

    /a גדולה לאחר מכן נקודותיים a כ-attributes ואיזה attributes אני רוצה אני רוצה דווקא קבצים שהם נסתרים ולא רואים אותם. כשאני כותב את זה אז הנה אני רואה שיש לי כאן ספרייה נקודה גיט שאני יכול גם להיכנס אליה נקודה גיט בפנים ולראות בתוכה את התוכן שלה.

  6. 02:10

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

  7. 02:33

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

  8. 02:57

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

  9. 03:17

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

  10. 03:45

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

  11. 04:00

    עכשיו כשאני אריץ את git סטטוס על מנת לקבל חיווי מה קורה, המערכת אומרת לי יש לנו כאן כרגע קובץ, לא רק שלא עשית עליו קומיקט, הוא נמצא תחת הקטגוריה של untracked, הוא כרגע לא מנוטר, אני בכלל לא מפעיל עליו את כל המניפולציות של SystemVersion של לשמור עליו, של version control של לשמור עליו ניהול גרסאות

  12. 04:22

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

  13. 04:40

    once הוספתי אותו אז עכשיו הקובץ שלי השתנה, מצב הקובץ השתנה ואם אני אריץ git status אני לא אמצא אותו כ-untracked אלא אני אמצא אותו כרגע כ-new file שהוא עדיין לא נעשה לו קומיט.

  14. 04:56

    ה-section שלו כרגע, הקטגוריה שלו זה changes to be committed. קבצים שאני צריך לעשות עליהם קומיט כדי להכניס אותם.

  15. 05:05

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

  16. 05:20

    האזור הראשון זה האזור העבודה שלי Working Directory. האזור השלישי והאחרון זה האזור של הריפוזיטורי, ריפו, ששם זה המחסן של הנתונים.

  17. 05:32

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

  18. 05:50

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

  19. 06:08

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

  20. 06:28

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

לקורס המלא: קורס Git ו‑GitHub אונליין

ההרצאה הקודמת: פקודת git-help

ההרצאה הבאה: פקודת git clone

הרצאות קשורות מקורסים אחרים

  • עידכון קוד - Git Commit
  • פקודות ב-MongoDB
  • פקודות NPM
  • סיכום פקודות ב-ANSIBLE

קורסים נוספים במסלול

  • קורס מבוא ל-QA - מידע חשוב לבודק תוכנה
  • קורס פוסטמן - Postman - בדיקות לאתרי אינטרנט - API
  • קורס Robot Framework - בדיקות QA ממשק גרפי
  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס סלניום בסיסי - בדיקות אוטומטיות - Selenium
  • קורס סלניום מתקדם - CI/CD - Continues Integration