לדלג לתוכן

8.5 בקרת גרסאות 3 גיט מרוחק הרצאה

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

רפוזטורי מרוחק

  • יש כמה מוצרים שמאפשרים לנו בקלות לנהל גיט מרוחק, הנה דוגמאות:
    • אתר GitHub מאפשר לנו לנהל את הגיט שלנו מול האתר בחינם - דוגמה לרפו של המודול request: https://github.com/psf/requests
    • אתר GitLab (עולה כסף) פתרון מעולה לניהול גיט רפו מתקדם

חיבור גיט לגיטהאב

  • צרו משתמש גיטהאב באתר github.com,
  • פתחו רפו חדש בקישור: https://github.com/new, תנו שם לrepo, תיאור ותחברו האם אתם רוצים שהרפו יהיה פרטי (גלוי רק לך), או ציבורי (גלוי לכולם)
  • כדי לחבר את הגיט שלכם לrepo כתבו את הפקודה הבאה:
    git remote add origin https://github.com/your_username/repo_name.git
    
  • שימו לב לשים את השם משתמש שלכם ואת השם של הrepo.
  • ועכשיו כדי לדחוף את כל השינויים גיט הלוקליים שלכם לאתר כתבו את הפקודה:
    git push -all
    
  • אם תרצו לדחוף רק branch ספציפי תוכלו לעשות זאת עם הפקודה
    git push origin <branch-name>
    
  • תוכלו לדחוף גם רק את הbranch שאתם נמצאים בו כרגע באמצעות הפקודה:
    git push origin 
    
  • בגיטהאב נוכל לתת הרשאה לעוד משתמשי github לעריכה בהגדרות הפרויקט, כאשר חברנו הוסיפו קוד לrepo נרצה למשוך את השינויים, נעשה זאת באמצעות הפקודה git pull
    git pull origin <branch-name>
    git pull origin  # Pull changes from the branch you currently on
    git pull -all  # Pull all changes
    

גיט clone

  • נוכל להעתיק git repo אלינו למחשב באמצעות הפקודה
    git clone https://github.com/psf/requests
    
  • במקרה הזה נעתיק את הrepo שנמצא בקישור - https://github.com/psf/requests הrepo של מפתחי המודול requests בפייתון.

שיטות עבודה טובות עם שרתי גיט

  • הקובץ README.md: קובץ מיוחד המכיל הסבר על ה-repo (הפרויקט), זוהי מוסכמה נפוצה שנמצאת בשימוש בכל מקום. הוסיפו תמיד קובץ כזה לפרויקט שלכם.
  • הקובץ .gitignore: קובץ מיוחד המכיל רשימה של כל הקבצים בתקייה שאינך רוצה שיתווספו ל-git, למשל אנחנו לא רוצים שהתקייה-.git יתווספו לgit שלך כי הם מכילים מידע רגיש, אז אפשר לציין את התקייה הזו בקובץ-.gitignore
    דוגמה לקובץ gitignore.
    filename.txt
    foldername/*
    !foldername/important.txt
    *.log
    **/debug.log
    

דברים שכדי להכיר

  • טרמינולוגיה: master branch = main branch - המון פעמים נראה שבrepo-ים אנשים קוראים לענף הראשי שלהם master.

  • בדרך כלל לפני מיזוג branch-ים למשל לפני מיזוג לפרודקשן, אחד מחברי הצוות שאתה מפתח איתם יצטרך לאשר לך את המיזוג זה נקרא merge request - או MR, יכול להיות גם Pull request או PR. המטרה היא שלפני פעולה חריגה כמו מיזוג קריטי לפרודקשן, נרצה שעוד מתכנת יעבור על זה.

  • סקירת קוד : סקירת קוד מתרחשת בדרך כלל בכל פעם שאנו מבצעים MR/PR, כך שחברים אחרים בצוות יכולים לבדוק שוב את הקוד שלנו לפני המיזוג.

  • סקריפטי CI CD: הם סקריפטים שנוכל לכתוב שיפעלו בכל פעם שאנו דוחפים שינויים לrepo. זה יכול לעזור לנו לבדוק את הקוד שלנו לפני העלאת שינויים, למשל אפשר להריץ טסטים או בדיקת לינטר כל פעם שנרצה לדחוף את הקוד, ואם הקוד לא עבר את הCI CD הוא לא ידחף, ובכך נוודא שהקוד שנמצא בפרודקשן הוא קוד עובד.

  • פרויקטי קוד פתוח - open source: פרויקטי git גלובליים שאנו יכולים לתרום להם, לעשות MR/PR, ולהיות מסוגלים לראות את הקוד שלהם, יש המון פרויקטים כאלה בכל העולם שקבוצת מתכנתים מתאגדת יחד כדי לבנות מוצר כזה.

  • רישיונות: פרויקטים רבים ב-GitHub מכילים קובץ רישיון המסביר אם נוכל להשתמש בפרויקט, לשנות אותו ועוד. למשל מה אם אני רוצה לכתוב פרויקט ציבורי בגיטהאב שכולם יכולים לראות את הקוד שלו אבל לא לשנות אותו? אוכל להוסיף רישיון שמציין זאת.

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