Skip to content

פקודות Git עם הסברים

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

ל־Git יש מאות פקודות, אבל העבודה היומ־יומית צריכה רק כמה מהן. המודל המנטלי הוא: working tree הוא הקבצים שלכם, האינדקס (staging area) הוא ה־commit הבא, ו־HEAD הוא ה־commit הנוכחי. מוסיפים ל־staging, מבצעים commit, משתפים. קראו status לעיתים קרובות. כל מה שלהלן מניח שפקודה שרשומה כבר קיימת.

טבלת עזר · 55 ערכים
55 of 55 rows
הקמה והגדרות
קובעים שם, אימייל או עורך פעם אחת לכל המאגרים.git config --global user.name "Ada"
מגדירים קיצור לפקודה שמקלידים לעיתים קרובות.git config --global alias.co checkout
יוצרים מאגר חדש בתיקייה הנוכחית.git init
מעתיקים מאגר מרוחק אל המחשב שלכם.git clone git@github.com:org/repo.git
מעתיקים רק את ה־commitים החדשים ביותר של ענף אחד.git clone --depth 1 --single-branch git@github.com:org/repo.git
יסודות ה־snapshot
מציגים מה מסומן ל־commit, מה שונה ומה לא במעקב.git status -sb
מוסיפים שינויים ל־staging כדי שיכנסו ל־commit הבא.git add src/app.ts
סוקרים שינויים חלק־חלק ומוסיפים ל־staging רק את מה שמאושר.git add -p src/app.ts
מוסיפים ל־staging שינויים בכל הקבצים שבמעקב בלי להוסיף קבצים חדשים.git add -u
רושמים את השינויים המסומנים כ־commit חדש.git commit -m "fix: null check"
מחליפים את ה־commit האחרון בגרסה מתוקנת.git commit --amend -m "fix: handle empty input"
מציגים שינויים שלא נוספו ל־staging, או כאלה שכן עם ‎--staged.git diff --staged
מציגים כל שינוי מאז ה־commit האחרון, ב־staging או לא.git diff HEAD
ענפים ומיזוג
מציגים, יוצרים או מוחקים ענפים.git branch feature-x
מוחקים ענף שמוזג (‏-D מכריח מחיקה, ‎-a מציג את כל הענפים).git branch -d feature-x
עוברים בין ענפים (המחליף המודרני של checkout).git switch feature-x
יוצרים ענף חדש ועוברים אליו בצעד אחד.git switch -c feature-x
עוברים בין ענפים או משחזרים קבצים (הפקודה הוותיקה והרחבה יותר).git checkout feature-x
מכניסים את השינויים של ענף אחר לענף הנוכחי.git merge feature-x
מבטלים מיזוג עם התנגשויות ומחזירים את הענף למצבו הקודם.git merge --abort
מריצים מחדש את ה־commitים של הענף הנוכחי מעל ענף אחר.git rebase main
מאחדים, מסדרים מחדש או עורכים commitים בזמן ההרצה מחדש.git rebase -i main
מעתיקים commit בודד מענף אחר אל הענף הזה.git cherry-pick a1b2c3d
מתייגים commit בתווית קריאה, כמו מספר גרסה.git tag -a v1.2.0
מוציאים (checkout) ענף אחר בתיקייה נפרדת במקביל.git worktree add ../repo-feature feature-x
בחינת היסטוריה
מדפדפים בהיסטוריית ה־commitים.git log --oneline --graph --decorate
מדפדפים בהיסטוריה מכל הענפים, לא רק הנוכחי.git log --oneline --graph --all
מציגים את ה־diff וההודעה המלאים של commit אחד.git show HEAD
מציגים מי שינה לאחרונה כל שורה בקובץ.git blame src/app.ts
מציגים כל commit שאליו הצביע HEAD, כולל כאלה שנזרקו.git reflog
מחפשים בהיסטוריה בשיטת חלוקה לחצאות את ה־commit ששבר משהו.git bisect start
מסכמים commitים לפי מחבר.git shortlog -sn
קוראים ל־commit הנוכחי לפי מספור מהתג הקרוב ביותר.git describe --tags
עבודה משותפת מול remote
מציגים או מוסיפים מאגרים מרוחקים.git remote add origin <url>
מציגים את ה־remoteים עם כתובות ה־fetch וה־push שלהם.git remote -v
מורידים שינויים מרוחקים בלי לגעת בענפים שלכם.git fetch origin
מורידים שינויים מרוחקים ומנקים הפניות לענפים מרוחקים שנמחקו.git fetch --prune
מביאים וממזגים את השינויים המרוחקים של הענף הנוכחי.git pull --rebase
שולחים commitים מקומיים אל ה־remote.git push -u origin feature-x
דורסים את הענף ב־remote, אבל רק אם אף אחד לא שלח קודם.git push --force-with-lease origin feature-x
ביטול שינויים
זורקים שינויים ב־working tree, או מוציאים אותם מה־staging.git restore src/app.ts
מוציאים קובץ מה־staging ומשאירים את העריכות ב־working tree.git restore --staged src/app.ts
מזיזים את קצה הענף הנוכחי ולפי בחירה גם את האינדקס.git reset --hard HEAD~1
מוסיפים commit חדש שמבטל commit קודם (בטוח לשיתוף).git revert HEAD
מוחקים קבצים ותיקיות שאינם במעקב.git clean -fd
הצדה (stash)
שומרים עבודה שלא בוצעה כ־commit ומאפסים את ה־working tree.git stash -u
מציגים כל stash ששמרתם.git stash list
מחילים stash מחדש ומשאירים אותו ברשימה.git stash apply stash@{1}
מוחקים stash שכבר לא צריכים.git stash drop stash@{1}
מחילים את ה־stash החדש ביותר ומוחקים אותו.git stash pop
קבצים ותת־מודולים
מעבירים או משנים שם לקובץ ומוסיפים את השינוי ל־staging.git mv old.ts src/new.ts
מוחקים קובץ ומוסיפים את המחיקה ל־staging.git rm src/old.ts
עוקבים אחר מאגר אחר כתיקייה בתוך המאגר הזה.git submodule add git@github.com:org/lib.git lib
מוציאים רק את התיקיות שנקבו בשמן ממאגר גדול.git sparse-checkout set src docs
מייצאים את העץ של commit כקובץ tar או zip.git archive -o repo.zip HEAD