Git Cheat Sheet: פקודות Git בעמוד אחד
עודכן לאחרונה
הגדרות ראשוניות
הגדרה חד-פעמית כדי שה-commits שלכם ישויכו אליכם כראוי.
| פקודה | מה היא עושה |
|---|---|
git config --global user.name "Ada" | הגדרת השם שיופיע ב-commits |
git config --global user.email you@x.com | הגדרת האימייל שיופיע ב-commits |
git config --list | הצגת כל ההגדרות הנוכחיות |
git config --global init.defaultBranch main | מתן השם main לענף הראשון במאגרים חדשים |
git config --global core.editor "code --wait" | הגדרת עורך ברירת המחדל |
git --version | הדפסת גרסת Git המותקנת |
יצירה ושכפול
פתיחת מאגר חדש או העתקה של מאגר קיים.
| פקודה | מה היא עושה |
|---|---|
git init | יצירת מאגר חדש בתיקייה הנוכחית |
git clone <url> | העתקת מאגר מרוחק למחשב המקומי |
git clone <url> mydir | שכפול לתוך תיקייה בשם מסוים |
git clone --depth 1 <url> | שכפול רדוד (רק ה-commit האחרון) |
git clone -b dev <url> | שכפול ומעבר לענף dev |
Staging ו-commit
שמירת שינויים בהיסטוריה של הפרויקט.
| פקודה | מה היא עושה |
|---|---|
git add file.txt | הוספת קובץ אחד ל-staging |
git add . | הוספת כל השינויים בתיקייה הנוכחית ל-staging |
git add -p | הוספת קטעים נבחרים ל-staging באופן אינטראקטיבי |
git commit -m "message" | ביצוע commit לשינויים שב-staging |
git commit -am "message" | הוספת קבצים במעקב ל-staging וביצוע commit |
git commit --amend | עריכת ה-commit האחרון |
git rm file.txt | מחיקת קובץ והוספת המחיקה ל-staging |
עבודה עם ענפים
עבודה על שינויים בנפרד משאר הקוד.
| פקודה | מה היא עושה |
|---|---|
git branch | הצגת רשימת הענפים המקומיים |
git branch feature | יצירת ענף חדש |
git switch feature | מעבר לענף קיים |
git switch -c feature | יצירה ומעבר בצעד אחד |
git checkout feature | הדרך הישנה יותר לעבור בין ענפים |
git branch -d feature | מחיקת ענף שכבר מוזג |
git branch -m newname | שינוי השם של הענף הנוכחי |
Merge ו-rebase
שילוב העבודה משני ענפים.
| פקודה | מה היא עושה |
|---|---|
git merge feature | מיזוג feature לתוך הענף הנוכחי |
git merge --no-ff feature | תמיד ליצור merge commit |
git rebase main | הפעלה מחדש של ה-commits שלכם מעל main |
git rebase -i HEAD~3 | עריכה אינטראקטיבית של 3 ה-commits האחרונים |
git rebase --continue | המשך אחרי פתרון קונפליקטים |
git rebase --abort | ביטול rebase שנמצא בתהליך |
git cherry-pick <hash> | החלת commit אחד על הענף הזה |
מאגרים מרוחקים (push, pull, fetch)
סנכרון המאגר המקומי עם מאגר מרוחק כמו GitHub.
| פקודה | מה היא עושה |
|---|---|
git remote -v | הצגת רשימת המאגרים המרוחקים המוגדרים |
git remote add origin <url> | קישור מאגר מרוחק בשם origin |
git fetch | הורדת שינויים מרוחקים בלי למזג |
git pull | הורדה ומיזוג של הענף המרוחק |
git push | העלאת commits למאגר המרוחק |
git push -u origin main | Push והגדרת ענף ה-upstream |
git push origin --delete feature | מחיקת ענף מרוחק |
בדיקת מצב (status, log, diff)
לראות מה השתנה ומה קורה.
| פקודה | מה היא עושה |
|---|---|
git status | הצגת קבצים ב-staging, מחוץ ל-staging וקבצים שאינם במעקב |
git log | הצגת היסטוריית ה-commits |
git log --oneline --graph | היסטוריה מקוצרת עם גרף ענפים |
git diff | שינויים שאינם ב-staging מול ה-index |
git diff --staged | שינויים ב-staging מול ה-commit האחרון |
git show <hash> | הצגת השינויים של commit בודד |
git blame file.txt | הצגת מי שינה אחרון כל שורה |
ביטול שינויים
התאוששות מטעויות בצורה בטוחה.
| פקודה | מה היא עושה |
|---|---|
git restore file.txt | ביטול שינויים בקובץ שאינם ב-staging |
git restore --staged file.txt | הוצאת קובץ מ-staging (השינויים נשמרים) |
git reset --soft HEAD~1 | ביטול ה-commit האחרון, השינויים נשארים ב-staging |
git reset --hard HEAD~1 | ביטול ה-commit האחרון ומחיקת השינויים |
git revert <hash> | יצירת commit חדש שמבטל commit אחר |
git stash | שמירת שינויים בצד לשימוש מאוחר יותר |
git stash pop | החלה מחדש של ה-stash האחרון |
כל פקודת Git שצריך, בעמוד אחד. ה-Git cheat sheet הזה הוא דף עזר מהיר לניהול גרסאות יומיומי: הגדרת Git, הכנה ל-commit וביצוע commit, עבודה עם ענפים (branches), merge ו-rebase, סנכרון עם מאגרים מרוחקים, וביטול טעויות.
אלה פקודות Git סטנדרטיות שעובדות אותו דבר ב-Linux, ב-macOS וב-Windows. העתיקו את מה שצריך, או נסו אותן בזמן אמת בעורך האונליין של הטרמינל: shell אמיתי בדפדפן, בלי שום התקנה.
שאלות נפוצות על ה-Git cheat sheet
האם ה-Git cheat sheet הזה בחינם?
מה ההבדל בין merge ל-rebase?
git merge משלב שני ענפים על ידי יצירת merge commit חדש שמחבר את ההיסטוריות שלהם, ושומר על ההיסטוריה המדויקת של שניהם. git rebase לעומת זאת מפעיל מחדש את ה-commits שלכם אחד אחד מעל ענף אחר, ויוצר היסטוריה לינארית בלי merge commit. Merge בטוח ואינו הורס דבר; rebase יוצר היסטוריה נקייה יותר אבל כותב מחדש commits, ולכן הימנעו מ-rebase לענפים שאחרים כבר משכו.איך מבטלים commit ב-Git?
git reset --soft HEAD~1 מבטל את ה-commit האחרון אבל משאיר את השינויים ב-staging, ואילו git reset --hard HEAD~1 מוחק אותם לגמרי. עבור commit שכבר שותף, השתמשו ב-git revert <hash> כדי ליצור commit חדש שהופך אותו בלי לכתוב מחדש את ההיסטוריה.