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

עבודה עם Git

רן בר-זיק אוקטובר 31, 2010 8:03 am אין תגובות

שימוש בסיסי ב-Git: מערכת מבוזרת לניהול גרסאות תוכנה שניתן להתקין אותה על לינוקס ולהשתמש בה בקלות וביעילות.

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

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

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

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

התקנה ויצירת פרויקט

התקנת Git על לינוקס דביאן:


sudo apt-get install git-core

בנוסף אנו נתקין את הכלי meld שהוא הכלי האהוב עלי להשוואה בין גרסאות, אבל אפשר להתקין כל כלי אחר כדוגמת: merge tool candidates: opendiff kdiff3 tkdiff xxdiff kompare gvimdiff diffuse ecmerge p4merge araxis emerge vimdiff


sudo apt-get install meld

נתקין גם כמה כלים של git: הראשון הוא gitk והשני הוא git-gui:


sudo apt-get install gitk
sudo apt-get install git gui

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

אחרי ההתקנה, ניגש לתיקית הפרויקט, לצורך העניין התיקיה נמצאת ב: /home/ran/workspace/example_project הפרויקט שלי מכיל קובץ אחד בלבד – קובץ HTML של Hello world.

קובץ לדוגמא
קובץ לדוגמא

יצירת repository

ננווט אל תוך התיקיה שלנו ונכתוב


git init

זה ייצור לנו את ה-Repository הריק, נכניס לתוך הגרסה הראשונה את כל הקבצים באמצעות:


git add .

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


git commit

יפתח לנו עורך nano שבו אנו יכולים להכניס הערות. אחרי כן יש ללחוץ על ctrl+X ושמירה. זה הכל, יופיע בפנינו משהו בסגנון המסר הבא:


[master (root-commit) 44f323f] Committer: Ran  On branch master Changes to be committed: 	new file:   index.html

בתיקית הפרויקט אנו נראה תיקיה ששמה הוא git. זהו! יש לנו repository!

שינויים ו-merge

בואו נבצע שינוי כלשהו בקובץ! נניח, נשנה את השם של Hello World ל-Hello Israel. נשמור ואז נכתוב:


git diff

על מנת לראות את כל הקבצים ששינינו. אם אנו רוצים כלי יותר אינטואטיבי, אנו נכתוב:


git difftool

ונקבל משהו בסגנון הזה (אם התקנו כבר את meld).

כלי ה-Meld
כלי ה-Meld

אחרי שבחנו את השינויים, אנחנו יכולים להעלות את הגרסה עם commit -a.

בדיקת הלוג של כל הגרסאות נעשית באמצעות git log, אנו נקבל משהו כזה:


commit 5eff03c1e4e20a023317841e0b17ddfd2e57fd62
Author: Ran 
Date:   Sun Sep 26 22:50:43 2010 +0200

     Changes to be committed:
        modified:   index.html

commit 44f323fd74ab513afc05b032a1dc2a0603bb25cd
Author: Ran 
Date:   Sun Sep 26 22:01:38 2010 +0200

    Committer: Ran 
    On branch master
    Changes to be committed:
        new file:   index.html


ה-SHA1 (המספר הארוך שמופיע ליד ה-commit) הוא די מפחיד אבל זה המזהה החד חד ערכי של ה-commit.

בואו וניצור ענף חדש לתוכנה שלנו, את זה אני עושה באמצעות הפקודה git branch ואז שם הענף – למשל arabversion:


git branch arabversion

מה שיפה ב-git הוא שאני מבצע את ה-checkout באותה ספריה שבה אני מריץ כבר את ה-master, את זה אני עושה בפקודה הבאה:


git checkout arabversion

והופ! הוא מודיע לי שאני עובד על arabversion, אני יכול לעשות commitים כרצוני, אני רוצה לעבור ל-branch אחר או ל-master? (ה-root נקרא master), כל מה שאני עושה זה:


git checkout root

ואל תגידו שזה לא גאוני! אני יכול לדעת באיזה branch אני נמצא וכמה יש לי בכלל באמצעות הפקודה:


git branch

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

merge לתוך ה-master גם הוא קל, אחרי שסיימתי עם ה-branch שלי (במקרה הזה arabversion), אני כותב:


git merge arabversion

מה שיפה הוא שכל ההיסטוריה של ה-branch נשמרת. ונניח שאני רוצה לבצע blame ולראות מי כתב מה? מאד פשוט: git blame ושם הקובץ…

שני כלים נוספים שהורדנו בהתחלה הם gitk ו git-gui ששווה לבדוק. הם כלים גרפיים המסייעים לנו לנהל את git.

הכוח הגדול של Git הוא ביכולת של כל מפתח לשאוב באמצעות url (אפילו url פנימי) את ה-master וב-merge שקל לעשות. אבל ההסברים שנתתי כאן מאפשרים להתחיל לעבוד ב-Git באופן בסיסי במחשב המקומי או בשרת הפיתוח אם אתה עובד לבד. בהמשך אפרסם מאמר שמראה כיצד לנהל את Git למספר משתמשים.

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

השארת תגובה

ביטול

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

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-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 | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

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