DCSIMG
מדריך Git על Windows: התקנה, הגדרות ראשוניות ושימוש בסיסי - Guy Burstein's Blog

Guy Burstein's Blog

Developer Evangelist @ Microsoft

News

Guy Burstein The Bu

Disclaimer
Postings are provided 'As Is' with no warranties and confer no rights.

Guy Burstein LinkedIn Profile

מדריך Git על Windows: התקנה, הגדרות ראשוניות ושימוש בסיסי

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

התקנת Git בסביבת חלונות

הדרך המומלצת לעבודה עם Git בסביבת חלונות היא ע”י ה- Client ששמו msysgit. בעמוד הפרוייקט נחפש את הגירסא העדכנית ביותר של Gitברשימה (Full installer for official Git for Windows) ונלחץ על הקישור כדי להגיע לעמוד ההורדה.

Git על Windows חלונות

בעמוד ההורדה, נלחץ על הקובץ להורדה ונשמור אותו מקומית.

Git על Windows חלונות

לאחר סיום ההורדה, נתחיל בתהליך ההתקנה.

Git על Windows חלונות

בעמוד ה- Welcome נלחץ על Next.

Git על Windows חלונות

נאשר את תנאי השימוש ונמשיך הלאה.

Git על Windows חלונות

נקבע / נאשר את מיקום ההתקנה של Git על חלונות ונמשיך הלאה.

Git על Windows חלונות

במסך הגדרות ההתקנה נבצע מספר התאמות: נבחר האם להוסיף קיצורי דרך על ה- Desktop או בשורת ה- Quick Launch, וכן נסמן את האפשרויות של הוספת הפקודות ל- Context Menu בעת לחיצה ימנית על קבצים. זה יעזור לנו מאד בעבודה עם Git בסביבת חלונות בהמשך.

Git על Windows חלונות

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

Git על Windows חלונות

במסך הגדרות סביבת ההפעלה נבחר באפשרות “Use Git Bash only”.

Git על Windows חלונות

כידוע, מערכות הפעלה שונות מקודדות תוים באופן שונה, ואחד ההבדלים הבולטים הוא התו CRLF (תו המציין מעבר שורה) ששונה באופן שהוא מיוצג בין Windows למערכות הפעלה אחרונות. כדי לא להתקל בבעיות בעת עבודה על פרוייקטים שלאו דווקא נוצרו בסביבת חלונות נבחר באפשרות: Checkout as-is, commit as-is.

Git על Windows חלונות

ההתקנה תתבצע, ותיארך מספר שניות ובסופה נקבל את מסך סיום ההתקנה.

Git על Windows חלונות

הפעלה ראשונית והגדרות ראשוניות

לאחר ההתקנה נפעיל את Git Bash מתפריט התוכניות.

Git על Windows חלונות

Git Bash הוא ממשק Console לעבודה מול Git. נשתמש בו לצורך אינטראקציה עם Git דרך פקודות.

Git על Windows חלונות

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

הגדרת שם המשתמש וכתובת המייל

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

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

git config --global user.name ‘Guy Burstein’

והגדרת כתובת המייל:

git config --global user.email guyb@microsoft.com

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

Git על Windows חלונות

יצירת מפתחות SSH לתקשורת מאובטחת מול מאגר הקוד

SSH (ראשי תיבות של Secure Shell) הוא פרוטוקול לתקשורת מאובטחת בין מחשבים, ומאפשרת להתחבר למחשב מרוחק ולבצע מולו פקודות.

כדי שנוכל לעבוד מול שרת Git באופן מאובטח, עלינו להגדיר מפתח SSH ייחודי לנו. כדי לעשות זאת, נשתמש בפקודה הבא (בשינוי כתובת המייל כמובן):

ssh-keygen –C ‘guyb@microsoft.com’ –t rsa

Git על Windows חלונות

לאחר הקשת הפקודה נישאל איפה לשמור את הקובץ המכיל את מפתח ה- SSH. אפשר להקיש שם של קובץ או פשוט לאשר ע”י לחיצה על  אנטר את מיקום ברירת המחדל (בתיקיית ה- User תיווצר תיקיית ssh. ובתוכה ישמרו הקבצים הרלוונטים).

Git על Windows חלונות

כעת נתבקש להזין passphrase, וגם כאן נוכל לאשר ע”י הקשה על אנטר פעמיים.

בסיום התהליך אמור להיראות הפלט כך:

Git על Windows חלונות

התהליך ייצור שני קבצים בתיקיית המשתמש שלי (אצלי: c:\users\guyb\.ssh). אחד מהם הוא המפתח הפרטי (id_rsa) והשני הוא המפתח הציבורי (id_rsa) בו נשתמש כדי להרשם וליצור remote repositories מאוחר יותר.

Git על Windows חלונות

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

עד כאן ההגדרות הנדרשות לעבודה עם Git בסביבת חלונות.

שימוש בסיסי ב- Git

כעת נשתמש בפרוייקט לדוגמא, כדי להדגים שימוש בסיסי ב- Git. יצאתי כאן Console Application פשוט ביותר.

Git על Windows חלונות

לאחר ביצוע פעולת Build לפרוייקט (היוצרת את ספריות ה- Bin וה- Obj), נפתח את הספרייה בה יושב הפרוייקט, נלחץ על הכפתור הימני של העכבר ונבחר באפשרות Git Bash Here.

Git על Windows חלונות

יצירת Git Repository

כעת, ניצור Git Repository עבור ה- Console Application שיצרנו. לאחר פתיחת Git Bash בספריית הפרוייקט נקבל את החלון הבא:

Git על Windows חלונות

כדי ליצור Repository מהתיקייה הנוכחית נשתמש בפקודה:

git init

זה הכל? כן! התיקייה הנוכחית היא כרגע Repository מקומי, ונקבל את הפלט הבא:

Git על Windows חלונות

נשים לב כי המילה master נוספה לשורת המיקום שלנו. השם master מציין את ה- branch שלנו בעץ הגירסאות של הפרוייקט, והענף הראשון שנוצר עבור פרוייקט הוא master. נדבר יותר על branches בפוסט מאוחר יותר.

עוד נשים לב כי בתיקיית הפרוייקט נוצרה לנו תקייה מוסתרת חדשה בשם git.:

Git על Windows חלונות

בדיקת סטטוס ניהול הקבצים (git status)

כדי לבדוק את סטטוס ניהול הקבצים ב- repository נריץ את הפקודה:

git status

ונקבל את הפלט הבא:

Git על Windows חלונות

הפלט הזה מציג מספר קבצים בצבע בורדו, שהם הקבצים שקיימים בתיקייה, אך לא משוייכים ל- Repository (זה מסביר את הכותרת Untracked files). בין הקבצים ניתן לראות קבצים חיוניים לפרוייקט כמו program.cs, תיקיית Properties ועוד, אך גם תיקיות וקבצים שלא נרצה לשמור אותם ב- Repository (כמו התיקיות Bin ו- Obj שדאגנו ליצור קודם). אלו קבצים שמפתח אחר בפרוייקט לא צריך אותם כדי לעבוד על הפרוייקט, לבנות אותו ולהריץ אותו.

שימוש בקובץ git ignore כדי להתעלם מקבצים מסויימים

כדי לציין למערכת Git כי ישנם קבצים שלא נרצה לנהל אותם, עלינו ליצור קובץ בשם gitignore. (קובץ ללא שם, ועם סיומת gitignore).

כדי ליצור קובץ ignore כזה נשתמש בפקודה touch שיוצרת קובץ ריק לפי שם נתון:

touch .gitignore

Git על Windows חלונות

לא נקבל כאן פלט מסויים, אך בתיקיית הפרוייקט נוצר לנו קובץ חדש:

Git על Windows חלונות

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

obj
bin *.csproj.user

לסיום, נשמור את הקובץ. נוכל תמיד לערוך אותו ולהוסיף קבצים בשלב מאוחר יותר.

אם כעת נציג סטטוס (ע”י שימוש בפקודה git status), נראה שרשימת הקבצים קטנה. היא מכילה אמנם את קובץ ה- ignore אך לא מכילה את רשימת הקבצים שביקשנו לא להוסיף.

Git על Windows חלונות

העברה ל- Staging

בניגוד למערכת ניהול תצורה אחרות בהן מבצעים Check In לקבצים ישירות לשרת, תהליך העבודה עם Git מכיל עוד שלב באצמע.

Git על Windows חלונות

בשלב ראשון, יש לי קבצים בספריית העבודה שלי אותם אני עורך ומשנה. בשלב מסויים, אני רוצה לקבץ אוסף של קבצים ששונו / התווספו לתוך קבוצה שבעתיד תעבור לשלב הבא.

כדי להוסיף קבצים לסביבת ה- Staging, נשתמש בפקודה git add עם שמות הקבצים. לדוגמא, נשתמש בפקודה הבאה כדי להוסיף את כל הקבצים תחת הספרייה המקומית:

git add .

אם נציג כרגע את סטטוס ניהול הקבצים שלנו ע”י git status נראה את הפלט הבא:

Git על Windows חלונות

הקבצים בספרייה הנוכחית ובספריות המשנה התווספו ומוצגת הכותרת: “Changes to be committed”. כלומר, הקבצים נמצאים בסביבת ה- Staging ומוכנים להעברה ל- Repository המקומי.
הם מסומנים בירוק ומצויין ליד כל אחד מהם new file. במהלך העבודה נוכל להוסיף עוד קבצים וספריות.

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

git commit -m "my first commit to git"

הרצת הפקודה תציג לנו את הפלט הבא.

Git על Windows חלונות

אם נציג כרגע את הסטטוס נראה שאין קבצים חדשים / ששונו וכו’ שניתן להוסיף ל- Repository.

Git על Windows חלונות

אם נשנה קובץ בספרייה המקומית (למשל את Program.cs) ונציג שוב סטטוס, נראה שהוא מופיע כקובץ ששונה. אנחנו יכולים להעביר אותו לסביבת ה- Staging ע”י git add, או להשאיר אותו כרגע בסביבת העבודה.

Git על Windows חלונות

ע”י שימוש בפקודה git log נוכל להציג את לוג השינויים שיש לנו ב- Repository:

Git על Windows חלונות

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

סיכום

בפרק הראשון של מדריך Git על Windows ביצענו התקנה של Git על Windows, הגדרנו הגדרות ראשוניות וראינו דוגמא לעבודה מול Repository מקומי. בפרקים הבאים נלמד על העבודה עם GitHub, נכיר את AppHarbor ונראה איך עובדים איתם באמצעות Git.

Comments

No Comments