אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » מדריכים » Git » Git – עבודה ראשונית

Git – עבודה ראשונית

רן בר-זיק דצמבר 13, 2015 7:20 am 11 תגובות

עבודה מקומית עם Git.

המאמר הקודם במדריך ה-gitGit – מבוא
המאמר הבא במדריך ה-gitGit – עבודה מול שרת חיצוני של גיטהאב
כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

אפשר ללמוד גיט יותר טוב

ספר מקיף על גיט, בעברית, שנכתב על ידי רן בר-זיק וכולל תרגילים רבים ומידע מקיף - כולל הסבר על תרומה לפרויקטים של קוד פתוח ושילוב של התרומה בקורות החיים ניתן להורדה ממש פה.
כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

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

אנו נפתח תיקיה כלשהי במחשב שלנו שעליה נתאמן. לצורך העניין: temp_project

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

$ git init
Initialized empty Git repository in /home/ran/temp_project/.git/

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

עכשיו ניצור קובץ בשם index.php שבו, איך לא, יהיה hello.world. אחרי היצירה, אנו נשתמש בפקודת git status כדי לראות אם יש שינויים בין העותק המקומי לבין ממה ששמור ב-git המקומי שלנו. זה מה שנראה:

$ git status
On branch master

Initial commit

Untracked files:
  (use "git add ..." to include in what will be committed)

	index.php

ועכשיו זה הזמן להסביר את ה-workflow של גיט. בניגוד ל-SVN, בכל דחיפה של קוד יש שני שלבים. השלב הראשון הוא הקומיט שמשמש אותנו לדחיפת קוד מקומית בלבד. ה-push משמש בעצם לדחיפת קוד אל תוך השרת. אנחנו עוסקים כרגע ב-commit מקומי. אז אנו רואים בעצם, באמצעות ה-git status, שיש לנו קובץ אחד שהוא untracked, כלומר ש-git לא עוקבת אחריו. שם הקובץ הוא index.php. בואו ונבקש מגיט להכניס אותו אל ה-repo שלנו. עושים את זה באמצעות פקודת git add שמקבל את שם הקובץ (או pattern, אבל זה סיפור אחר). אחרי שנכתוב git add index.php ונכתוב git status נוכל לראות שב-initial commit יש לנו קובץ חדש ששמו הוא index.php:

$ git add index.php 
$ git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached ..." to unstage)

	new file:   index.php

אני יכול להוסיף ולעדכן את ה-commit שלי. לעדכן את ה-index.php, להוסיף קבצים חדשים (לא נשכח להוסיף אותם עם git add אחרי יצירתם). אחרי שסיימתי וה-commit שלי מוכן, אני אשתמש בפקודת commit כדי להכניס את כל העבודה שלי אל ה-repo המקומי. הפקודה היא פשוטה מאוד: git commit ואז m- ומרכאות עם המסר שייכנס ללוג. ככה זה נראה:

$ git commit -m "Initial commit"
[master (root-commit) afe684e] Initial commit
 1 file changed, 3 insertions(+)
 create mode 100644 index.php

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

$ git status
On branch master
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git checkout -- ..." to discard changes in working directory)

	modified:   index.php

no changes added to commit (use "git add" and/or "git commit -a")

אם ארצה לעשות עוד קומיט, שוב אצטרך לעשות git add עם שם הקובץ (או git add –all לכל הקבצים במידה ויש כמה) ואז git commit עם ההודעה שנכנסת ללוג.

אז איך זה עובד? יצירת ריפו של גיט -> יצירת קבצים -> בחירה מה להכניס לקומיט באמצעות commit add -> קומיט -> המשך עבודה וחוזר חלילה.

במידה ויש לי כמה קומיטים, יש לי כבר לוג שאני יכול להציץ בו:

$ git log
commit 228a8c3190429c61c8fde0c77a068ae25d2fed29
Author: Ran Bar-Zik 
Date:   Sat Nov 21 16:42:07 2015 +0200

    Change wording

commit afe684e746f36320d5aac9db039807051fe8877e
Author: Ran Bar-Zik 
Date:   Sat Nov 21 16:34:21 2015 +0200

    Initial commit

רואים את המספר הזה שאורכו כאורך הגלות? 228a8c3190429c61c8fde0c77a068ae25d2fed29 למשל? זה נקרא ה-hash וזה המזהה של ה-commit. בדיוק כמו ב-SVN או בכל מערכת אחרת לניהול קבצים. אני יכול להציג את השינויים בין הקומיטים עם diff:

$ git diff 228a8c3190429c61c8fde0c77a068ae25d2fed29 afe684e746f36320d5aac9db039807051fe8877e

לא חייבים להשתמש בכל ה-hash אלא ברוב המקרים אפשר להשתמש רק בחמש ספרות הראשונות. למשל:

$ git diff 228a8 afe68
diff --git a/index.php b/index.php
index b495a86..40f1dd2 100644
--- a/index.php
+++ b/index.php
@@ -1,3 +1,3 @@
 <?php
 
-print "Hello World!";
+print "hello world!";

אם עבדתם כבר עם SVN או עם מערכת אחרת לניהול גרסאות, אתם אמורים להכיר את הסינטקס של ה-diff ואפילו כמה כלים גרפיים שעובדים עם גיט בדיוק כמו SVN.

עד כאן, זה לא אמור להיות מאוד שונה מעבודה מול SVN. חוץ מזה שמאוד קל לעבוד באופן מקומי בלבד עם git. בניגוד ל-SVN, ששם אנו היינו חייבים שרת. פה אפשר לעבוד רק במקומי. לעשות קומיטים ולבצע diff. אבל הגדולה של גיט היא בעבודה מול שרת או שרתים מרוחקים. במאמר הבא אנו נלמד על עבודה מול שרת מרוחק.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
מדריך הגיט
git

11 תגובות

  1. ZG הגב דצמבר 14, 2015 בשעה 6:56 pm

    לגיט יש איזושהי תוכנה שולחנית לווינדוס?

    • רן בר-זיק הגב דצמבר 19, 2015 בשעה 12:47 pm

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

  2. משתמש אנונימי (לא מזוהה) הגב ינואר 11, 2016 בשעה 8:56 am

    אני עובדת עם VS לאחר סנכרון קבצים ב GIT
    (את ה- GIT אנו לא מנהלים מ VS)
    אני מקבלת שגיאה ש DLLים מסוימים לא מנותבים כראוי
    שמנו כבר את הקבצים הבאים ב ignore :
    bin, obj, packages
    אבל עדין כשעושים PULL/PUSH
    זה קורה והאתר זורק שגיאה כי הוא לא מוצא את ה DLL
    מה אפשר לעשות?

  3. משתמש אנונימי (לא מזוהה) הגב ינואר 11, 2016 בשעה 9:28 am

    אני עובדת עם VS לאחר סנכרון קבצים ב GIT
    (את ה- GIT אנו לא מנהלים מ VS)
    אני מקבלת שגיאה ש DLLים מסוימים לא מנותבים כראוי
    שמנו כבר את הקבצים הבאים ב ignore :
    bin, obj, packages
    אבל עדין כשעושים PULL/PUSH
    זה קורה והאתר זורק שגיאה כי הוא לא מוצא את ה DLL
    מה אפשר לעשות?

    • רן בר-זיק הגב ינואר 16, 2016 בשעה 9:01 pm

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

  4. ניר סליקטר הגב יוני 24, 2016 בשעה 3:03 am

    התקנתי בוינדוס git ורסיה
    git version 2.8.4.windows.1

    קיבלתי שגיאה
    'git commit -m'Initial commit
    error: pathspec 'commit" did not match any file(s) known to git.

    תיקנתי עם השורה
    "git commit -m "Initial commit
    כלומר יש רווח אחרי הm ויש מרכאות כפולות

    • רן בר-זיק הגב יוני 26, 2016 בשעה 2:40 pm

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

  5. שמעון הגב נובמבר 10, 2016 בשעה 9:59 am

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

    • רן בר-זיק הגב נובמבר 12, 2016 בשעה 4:03 pm

      תודה, המאמר הזה ספציפי בעייתי או כל הסדרה? והאם התחלת לקרוא את הסדרה מההתחלה?

      • שמעון הגב נובמבר 13, 2016 בשעה 12:27 am

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

        • Dave הגב דצמבר 29, 2018 בשעה 10:03 pm

          זה טעות ' אם ארצה לעשות שוב קומיט שוב אצטרך לעשות גיט Add..

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

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

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד