בצורה פשוטה ביצוע Git Checkout לסניף מרוחק [שלב אחרי שלב]

האם אתה חדש בקבוצה וקיבלת הוראות לבדוק סניף רחוק ממאגר הקוד של git? בין אם אתה חלק מעסק מרובה שורות או צוות קטן, השליטה בסניפי git היא מפתח לשותפות קוד חלקה. במדריך זה, נחקור את התהליך לקבלת קוד ממאגר git רחוק, ונתמקד בפקודת 'git checkout remote branch'.

Not a reader? Explore this related video tutorial!

Not seeing the video? Ensure your ad blocker is disabled.

דרישות מוקדמות

שיטות אחרות אפשריות להתקנה ב- windows כוללות chocolatey ו- git4win.

הבנה של סניף רחוק

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

A remote branch is a branch located in a remote Git repository. These remote repositories, termed as “remotes,” are the destinations your local Git repository will scout for external commit updates once set up.

git branch
List of local branches shown from the git branch command.

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

שליטה ב- Git Checkout Remote Branchנניח שיש לך מאגר Git מקומי והצורך לשתף פעולה עם מפתחים אחרים עולה. זהו המקום שבו פקודת Git checkout נכנסת לתוך התמקצעות, מאפשרת לך למשוך את ההתחייבויות האחרונות מסניף מרוחק במאגר Git מרוחק.

לאחר הגדרת סניף מרוחק, Git ישקול למרוחק במקום סניף בלבד. למטה דוגמה לפקודה git checkout remote <branch>.

git checkout remote main

שכפול המאגר Git המרוחק

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

1. נוח יותר לשכפל מאגר מרוחק באמצעות כתובת ה-HTTPS במקום SSH כדי להתעלם מבעיות אישור וחומת אש.

  • עבור למאגר ב-GitHub.
  • לחץ על הלחצן Code ובחר HTTPS.
  • לחץ על סמל ה-Clipboard ליד הקישור כדי להעתיק את ה-URL ללוח העריכה שלך.
Locating the HTTPS clone URL in GitHub.

2. לאחר שהעתקת את כתובת ה-HTTPS URL ללוח הגזירים שלך, פתח ממשק שורת הפקודה באמצעות CLI המועדף עליך, כגון פקודת Windows או Terminal של Windows.

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

# GitHub git clone https://github.com/Adam-the-Automator/git-checkout-remote-branch
Cloning a remote repository to the local machine.

4. נווט אל המאגר המשוכפל עם הפקודה, cd git-checkout-remote-branch.

בצע את הפקודת המצב הבאה כדי לוודא שהמאגר שוכפל בהצלחה. פקודת ה-status של Git חושפת את ההבדלים בין הענף המקומי והענף המרוחק, ומסייעת בקביעה האם הענף שלך מחובר ומעודכן! הענף המרוחק של Git המוגדר כברירת מחדל נקרא origin, ומקודם לענף המרוחק main. git status

git status
Checking a repositories status.

עבור רוב תוכנות ה-Git המודרניות, main היא הענף הראשי הדיפולטי. עשוי להיות שתתקלו באפליקציה ישנה שמשתמשת בשם master כשם ברירת המחדל לענף שלה, אך שני השמות פועלים באופן זהה. המדריך הזה משתמש בענפים בשמות main, RemoteBranch, SomeBranch ו־AnotherBranch.

מהו Remote ב-Git וכיצד לעקוב אחרי ענפים מרוחקים

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

A Git repository itself may have multiple remotes, but a branch can only reference a single remote.

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

מפתח את ה-Remotes של מאגר Git

בתחילה, ודאו שהמאגר שאתם עובדים איתו מכיל Remotes של Git. כדי לעשות זאת, תצפו ב-Remotes של Git במאגר המידע שלכם בעזרת הפקודה git remote כפי שמוצג למטה. בדוגמה זו, מוצגים שני Remotes, origin ו־remote2.

git remote
Viewing a repositories two configured remotes.

שני מאגרי מידע מרוחקים שענפיהם מושגים נקראים origin ו־remote2, כאשר המאגרים שלכם עשויים להיות שונים.

שדרגו את הקוד להצגת מידע נוסף אודות הרמוטים המוגדרים, הוסיפו את המתג v כדי להציג את ה-URI המלא של Git.

git remote -v
Viewing verbose details about repo remotes.

אתם יכולים לשאול למה ישנם URI נפרדים עבור fetch ו־push. זרמים עבודה של Git יכולים לאפשר לך לבדוק עדכונים למאגר ב-URI שונה מאיפה שאתה שולח שינויים, וזה נקרא זרם תוכניתי.

הצגת סניפים רמוטיים זמינים

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

git branch --all

בתמונה למטה, מוצג מאגר הרמוט origin שמשמש במדריך זה. עם זאת, התמונה פולטת את כל הסניפים מהרמוט בשם Remote2.

Viewing all known branches in a repo (including remotes).

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

עדכון של סניפים רמוטיים זמינים

לפעמים, מאגר רמוטי יכול להוסיף או לשנות סניפים. כדי לוודא שאתה עובד עם הסניפים העדכניים ביותר, יש להפעיל את הפקודה git fetch.

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

# משיג את הענפים המרוחקים הזמינים
git fetch

# מאמת שכל הענפים כעת זמינים במאגר Git המקומי
git branch --all

להלן, הענף remotes/origin/RemoteBranch כעת נראה ברשימת הענפים המרוחקים הזמינים לאחר ביצוע הפקודה git fetch.

Using git fetch to update the list of available remote branches.

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

git fetch --all

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

# מפרט ענפים זמינים במאגר Git מקומי
git branch --all
# משיג ענפים זמינים מ-remote2
git fetch Remote2
# מאמת כי ענף remote2, main, כעת זמין
git branch --all
Fetching main from remote2 with the git fetch command.

בכל פעם שאתה בודק עדכונים מרחוק עם git fetch, git pull, או git push, Git משווה בין התחייבויות עם הסניף המרוחק. סניפים מקומיים יכולים לעקוב אחר כל סניף מרוחק של Git. בנוסף, ניתן להגדיר מספר סניפים מקומיים שיעקבו אחר אותו סניף מרוחק.

צפייה במעקב המרוחק של כל סניף

כדי לראות את הסניף המרוחק שמתוך מעקב מקומי לצד הסניף המקומי המתאים, השתמש בפרמטר vv עם הפקודה git branch. תוצאות הפקודה מציגות רשימה של סניפים מרוחקים וסניפים בפורמט [<remote>/<branch>] כמפורט למטה.

git branch -vv
Listing remote tracking of all local branches.

שינוי מעקב המרוחק של סניף

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

git branch -u Remote2/main
Setting what remote to track for the current branch.

בדיקת סניפי Git המרוחקים

עם יצירת סניפים חדשים במאגר ה-Git המרוחק, עשוי להיות צורך לבצע פעולת checkout של סניף מרוחק של git. בדיקת סניף מאגר מרוחק מתבצעת דרך הפקודה checkout.

אם התנאים הבאים מתקיימים, Git יקבע באופן אוטונומי את ה-remote הנכון, יוריד העתק מקומי של ה-gremote ויקבע את העותק המקומי לעקוב אחרי ה-gremote. יש לוודא שהתנאים הבאים אינם מתקיימים דרך תוצאות הפקודה git branch --all.

  • A local branch with the same name does not already exist.
  • אין יותר מפעם אחת של remote שמשתמש באותו שם של סניף רחוק.

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

git checkout RemoteBranch
Creating a local branch from a remote branch with git checkout.

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

git checkout -b AnotherBranch origin/RemoteBranch
Creating a local copy of a remote branch with an alternate local branch name.

אם במאגר המקומי ישנם מספר רב של remotes עם אותו שם של סניף, יש לציין אילו remote וסניף לעקוב אחרי ה-commitים המקומיים.

git checkout --track origin/RemoteBranch
Creating a local copy of a remote branch with tracking enabled.

גרסאות עתידיות של Git יכולות להעדיף שתשתמש בפקודה git switch לשינוי ויצירת סניפים. פקודת Git switch היא רק לסניפים, בעוד שפקודת Git checkout יש לה מספר יכולות. Irshad S. כתב מבוא נחמד על הסבר אם ברצונך לקרוא עוד על כך.

דחיפת סניף מקומי ל-remote

בעת יצירת סניף מקומי שאין לו סניף רחוק תואם למעקב, ניתן להעביר את הסניף לרחוק באמצעות הפקודה git push. השיטה הכי ישירה להקים סניף חדש ב-remote שלך היא על ידי שימוש בפרמטר u.

הפרמטר u, כפי שנעשה שימוש כאן, מחייב את הארגומנטים של שם המאגר ושם הסניף המקורי. על ידי ציון רק של HEAD כשם הסניף המקורי, Git מבין להשתמש בשם הסניף המקומי הנוכחי כשם ב-remote, במקרה זה, NewBranch.

# בדוק ועבור אל NewBranch
git checkout -b NewBranch
# צור את NewBranch ב-remote של המקור
git push -u origin HEAD
# ודא שהסניפים ב-remote קיימים כעת
git branch -vv
Pushing a local branch to an upstream remote named origin with the same name as local.

HEAD הוא קיצור שמשמעו סניף הנוכחי. ניתן לדחוף סניפים אחרים ל-remote ולהקים מעקב על ידי שימוש בשמם במקום HEAD.

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

# צור את הסניף הנוכחי ב-remote כ-AnotherBranch
git push -u origin HEAD:AnotherBranch
# ודא שהסניף המקומי NewBranch קיים כעת כ-AnotherBranch ב-remote
git branch -vv
Pushing a local branch to an upstream remote named origin with an alternate remote branch name.

שלבים הבאים ומשאבים נוספים ב-Git

בעקבות ביקורתך על נכונות Git, ניהול מרחוק, וביצוע git checkout remote branch, אתה כעת מצויד במקור רב של ידע שיסייע במניעת כעסונים עתידיים. השלבים לבדיקת הסניף מרחוק ב-Git ושיטות המומלצות ישמשו כמקורות לא יקרים העוברים הלאה.

אם תרצה לחקור עומק יותר את כללי הניהול של מאגר Git, המשאבים הבאים מומלצים ביותר:

  • A primer on detached heads: Discover scenarios where a detached HEAD is beneficial or inadvertent, and how to handle it.
  • Git switch: פקודה שמוקדשת לטיפול בסניפים, להבדיל מ-Git המרובה הפנים checkout.

Source:
https://adamtheautomator.com/git-checkout-remote-branch/