Menu
Coddy logo textTech

Git Push

עודכן לאחרונה

git push מעלה את הקומיטים שבענף המקומי שלכם לענף המקביל במאגר המרוחק (כמו GitHub). אחרי שלענף הוגדר upstream, git push פשוט מספיק; בדחיפה הראשונה של ענף חדש משתמשים ב--u כדי ליצור את הענף המרוחק ולהגדיר מעקב, כך ש-push ו-pull בהמשך לא יצטרכו ארגומנטים.

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

git push מעלה את הקומיטים המקומיים החדשים שלכם לענף המרוחק.

תחביר

פקודהמה היא עושה
git pushדחיפת הענף הנוכחי ל-upstream שלו
git push -u origin featureדחיפת ענף חדש והגדרת upstream
git push origin mainדחיפה למאגר מרוחק ולענף מסוימים
git push --tagsדחיפת כל התגיות המקומיות
git push --force-with-leaseforce push בטוח אחרי rebase

מקרים נפוצים

מטרהפקודה
דחיפת ענף חדש לגמריgit push -u origin feature
דחיפה אחרי שה-upstream הוגדרgit push
דחיפת תגית אחתgit push origin v1.0.0
מחיקת ענף מרוחקgit push origin --delete feature

דוגמה מלאה

שלבפקודהתוצאה
1git remote add origin <url>מחבר את המאגר המקומי למאגר המרוחק תחת השם origin
2git push -u origin mainיוצר את main במאגר המרוחק ומגדיר אותו כ-upstream של main המקומי
3git pushכל דחיפה מאוחרת יותר ב-main לא צריכה ארגומנטים

שאלות נפוצות על git push

מה git push עושה?
הוא שולח את הקומיטים שיש בענף המקומי וחסרים בענף המרוחק, ואז מזיז את הענף המרוחק כך שיתאים. הוא מעלה קומיטים בלבד: שינויים שלא נשמרו בקומיט נשארים במחשב שלכם, אז צרו קומיט קודם. אם במאגר המרוחק יש קומיטים שאין לכם, הדחיפה נדחית עד שתריצו pull או rebase.
איך דוחפים ענף חדש למאגר המרוחק?
הריצו git push -u origin <branch>. ה--u (קיצור של --set-upstream) יוצר את הענף במאגר המרוחק ומקשר אליו את הענף המקומי, כך שאחר כך git push ו-git pull פשוטים עובדים בלי ארגומנטים. הענף המרוחק לא קיים עד הדחיפה הראשונה הזו.
למה git push אומר 'no upstream branch'?
הענף המקומי שלכם עדיין לא מקושר לענף מרוחק. דחפו אותו עם git push -u origin <branch> כדי ליצור את הענף המרוחק ולהגדיר את ה-upstream. אחרי זה, git push לבדו יודע לאן לשלוח את הקומיטים.
איך דוחפים תגיות?
תגיות לא נדחפות כברירת מחדל. דחפו תגית אחת עם git push origin <tagname>, או את כולן בבת אחת עם git push --tags. זו מלכודת נפוצה: תגית שיצרתם מקומית לא תופיע במאגר המרוחק עד שתדחפו אותה במפורש.
איך עושים force push בבטחה?
אחרי שכתוב היסטוריה (rebase או amend), השתמשו ב-git push --force-with-lease ולא ב---force. הוא דורס את הענף המרוחק רק אם אף אחד אחר לא דחף מאז ה-fetch האחרון שלכם, וכך מגן על העבודה של חברי הצוות. הסבר מלא בעמוד על git force push.
מה המשמעות של git push -u origin main?
origin הוא המאגר המרוחק (ראו git remote), main הוא הענף, ו--u מגדיר את הענף המרוחק הזה כ-upstream של main המקומי. זו הפקודה ש-GitHub מציג למאגר חדש: אחרי שהיא רצה פעם אחת, git push ו-git pull ב-main לא צריכים ארגומנטים.
מה ההבדל בין git push לבין git pull?
הם מעבירים קומיטים בכיוונים הפוכים. git push מעלה את הקומיטים המקומיים שלכם למאגר המרוחק; git pull מוריד את הקומיטים החדשים מהמאגר המרוחק וממזג אותם לענף שלכם. דחיפה שנדחתה כ-non-fast-forward בדרך כלל אומרת שצריך להריץ pull קודם. ראו git fetch vs pull כדי להבין מה pull עושה מאחורי הקלעים.
אפשר לתרגל את זה אונליין?
כן. פתחו את עורך הטרמינל אונליין כדי להריץ git push ב-shell אמיתי בדפדפן, בלי להתקין כלום. גם קורס ה-Git האינטראקטיבי והחינמי של Coddy מלמד עבודה עם מאגרים מרוחקים צעד אחר צעד.
איור של שפות התכנות ב-Coddy

ללמוד Git עם Coddy

להתחיל