גיט

גיט

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

מושגים בגיט:

  • Working area – כל הקבצים במיקום בו קיים git (הספרייה) אשר התווספו או עודכנו.
  • (Index (staging area – המקום בו git מנהל רישום ומעקב של כל מה שקורה בrepo.
    הפקודה git add מעבירה קבצים מה- working area ל-index.
  • Local repository – הרפו המקומי בו נשמרת ההיסטוריה של כל ה-commits.
    הפקודה git commit מעבירה קבצים מה-index ל-local repo ומגדירה commit id ייחודי עבור ההסטוריה.
  • Remote repository – אתר מרוחק וחשוף בו ניתן לאחסן ולשתף את ה-repository.
    הפקודה git push תעביר את כל ה-commits מה-local repo ל-remote repo.

 

  • HEAD – מצביע לקומיט האחרון שנעשה במערכת. (לא משנה באיזה ענף)
  • MASTER – הענף הראשי
  • ORIGIN – המקור לקוד. ממנו בוצע הclone

פקודות נפוצות:

  • git init – יצירת סביבת גיט לוקלית חדשה.
  • git clone  – יצירת העתק של סביבה קיימת למחשב הלוקלי.
  • git add – הוספת קובץ/קבצים לstaging area
  • git commit – יצירת נקודת מצב של הפרויקט ושמירתו בגיט
  • git config – הגדרות פנימיות של הגיט.
  • git status – מציג את תמונת המצב של הקבצים שחלו בהם שינויים.
  • git checkout – מעבר לנקודת קומיט אחרת על הגרף של הגיט
  • git remote – מציג מידע על המאגר שממנו נלקח הקוד.
  • git branch – פעולות על הענפים. תצוגה, הוספה, מחיקה.
  • git pull – מבצע merge של כל השינויים על remote repository אל הקבצים הלוקליים.

בעיות נפוצות:

  • הקוד השתבש ורוצים לחזור לקומיט הקודם:
    git reset
    יש כמה אפשרויות לפקודה הזו:
    1. reset –soft HEAD~1 – מעדכן את הHEAD רק בlocal repository (כלומר, הworking directory לא משתנה)
    2. git reset –hard HEAD~1 – מעדכן את הlocal repository + working directory . בדרך כלל נרצה להשתמש באופציה הזו.
    הסבר מעמיק על הפקודה reset ניתן לראות כאן
    3. אם כבר נעשה קומיט שגוי לשרת – יש להשתמש בפקודה git revert.
  • שינוי מיקום מצביע הענף. לדוגמא נשנה את מסטר 3 קומיטים אחורה:
    git branch -f master HEAD~3
  • בדיקה מה הרסתי אחרי הקומיט האחרון: git diff
  • לפעמים נרצה לשנות הרשאות מקומיות אבל לא נרצה שהשינויים יעלו לשרת. נגדיר לגיט שיתעלם משינויים בהרשאות באופן הבא: git config core.fileMode false
  • עדכון קובץ ספציפי מענף אחר: git checkout <another branch> — <filename>
  • לא מצליחה להוריד עדכונים משרת הגיט כי יש קובץ שלא נעשה לו קומיט:
    יש 2 אפשרויות: א. לבצע קומיט – git commit -m "my message""
    ב. להתעלם מהשינויים המקומיים: git checkout filename
  • עדכון קובץ ה .gitignore לא משפיע
    כאשר אנחנו מעדכנים את הקובץ הנ"ל, מה שכבר קיים באינדקס נשאר שם. אם נרצה לנקות בהתאם להגדרות החדשות של הקובץ, יהיה צורך לבנות את האינדקס מחדש:
    1. git rm -r –cached . (ניקוי האינדקס)
    2. git add . (בניה מחדש)
    3. git commit -m "gitignore is now working"

 

לתרגל גיט:

לעיון מעמיק:

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

חדש בדרופל 8.8: Media library

Media library הוא אחד המודולים השימושיים בעבודה עם תמונות. המודול נכנס בצורה נסיונית לגירסא 8.6 ובצורה סופית ורשמית החל מגירסא 8.8. המודול מאפשר ממשק מאד

קרא עוד »

Drupal cron

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

קרא עוד »