דף עזר Git
מדריך Git לחיפוש והדפסה — הגדרות, ענפים, מיזוג, rebase, מאגרים מרוחקים, stash, תגיות וביטול שינויים. בחינם.
התקנה ותצורה
10git config --global user.name "Jane Doe"
הגדרת השם המצורף לקומיטים שלך
git config --global user.email "jane@example.com"
הגדרת האימייל המצורף לקומיטים שלך
git config --global init.defaultBranch main
להתחיל ריפו חדש בענף "main"
git config --global core.editor "code --wait"
שימוש ב-VS Code כעורך ברירת המחדל של Git
git config --global pull.rebase true
rebase במקום merge בעת pull
git config --global alias.co checkout
יצירת קיצור (git co)
git config --global --list
הצגת כל ערכי התצורה הגלובליים
git config user.email
הצגת האימייל של הריפו הנוכחי
git config --global color.ui auto
הפעלת פלט צבעוני בשורת הפקודה
git help <command>
פתיחת דף המדריך של פקודה
יצירה ושכפול ריפו
9git init
אתחול ריפו חדש בתיקייה הנוכחית
git init my-project
יצירת ריפו חדש בתיקייה חדשה
git clone https://example.com/repo.git
שכפול ריפו מרוחק דרך HTTPS
git clone git@example.com:user/repo.git
שכפול ריפו מרוחק דרך SSH
git clone <url> my-dir
שכפול לשם תיקייה מסוים
git clone --depth 1 <url>
שכפול רדוד עם הקומיט האחרון בלבד
git clone --branch dev <url>
שכפול ומעבר לענף מסוים
git clone --recurse-submodules <url>
שכפול ואתחול כל ה-submodules
git remote add origin <url>
צירוף remote לריפו מקומי קיים
staging וקומיט
11git add file.txt
stage לקובץ בודד לקומיט הבא
git add .
stage לכל השינויים בתיקייה הנוכחית
git add -A
stage לכל השינויים כולל מחיקות
git add -p
stage אינטראקטיבי של קטעים נבחרים
git commit -m "Add login form"
קומיט לשינויים ב-stage עם הודעה
git commit -am "Fix typo"
stage לקבצים במעקב וקומיט בצעד אחד
git commit --amend
עריכת הקומיט האחרון
git commit --amend --no-edit
הוספת שינויים ב-stage לקומיט האחרון
git rm file.txt
הסרת קובץ ו-stage למחיקה
git mv old.txt new.txt
שינוי שם או העברת קובץ ו-stage
git reset file.txt
ביטול stage לקובץ תוך שמירת השינויים
ענפים
10git branch
הצגת כל הענפים המקומיים
git branch -a
הצגת ענפים מקומיים ומרוחקים במעקב
git switch -c feature/login
יצירת ענף חדש ומעבר אליו
git switch main
מעבר לענף קיים
git checkout -b hotfix
הדרך הקלאסית ליצירה ומעבר בין ענפים
git branch -m old-name new-name
שינוי שם ענף
git branch -d feature/login
מחיקת ענף מקומי שמוזג
git branch -D feature/login
מחיקה כפויה של ענף מקומי שלא מוזג
git push origin --delete feature/login
מחיקת ענף ב-remote
git switch -
חזרה לענף הקודם
merge ו-rebase
10git merge feature/login
מיזוג ענף לתוך הנוכחי
git merge --no-ff feature/login
מיזוג עם יצירת merge commit תמיד
git merge --squash feature/login
צירוף ענף לשינוי ב-stage אחד
git merge --abort
ביטול merge עם קונפליקטים
git rebase main
השמעה מחדש של קומיטים מהענף הנוכחי על main
git rebase -i HEAD~3
עריכה אינטראקטיבית של 3 הקומיטים האחרונים
git rebase --continue
המשך rebase לאחר פתרון קונפליקטים
git rebase --abort
ביטול rebase בתהליך
git cherry-pick <hash>
החלת קומיט בודד על הענף הנוכחי
git mergetool
הפעלת כלי לפתרון קונפליקטים של merge
remotes וסנכרון
11git remote -v
הצגת remotes מוגדרים וכתובות ה-URL שלהם
git remote add upstream <url>
הוספת remote שני בשם upstream
git remote set-url origin <url>
שינוי כתובת ה-URL של remote קיים
git fetch
הורדת שינויים מרוחקים ללא מיזוג
git fetch --all --prune
fetch מכל ה-remotes והסרת ענפים מיושנים
git pull
fetch ושילוב שינויים מרוחקים
git pull --rebase
pull ו-rebase של קומיטים מקומיים מעל
git push
העלאת קומיטים מקומיים ל-remote
git push -u origin main
push והגדרת ענף המעקב upstream
git push --force-with-lease
force-push בטוח ללא דריסת אחרים
git push origin --tags
push לכל התגיות המקומיות ל-remote
בדיקה והשוואה
10git status
הצגת קבצים ב-stage, מחוץ ל-stage ולא במעקב
git status -s
הצגת סטטוס בפורמט קצר וקומפקטי
git diff
הצגת שינויים מחוץ ל-stage מול האינדקס
git diff --staged
הצגת שינויים ב-stage לקומיט הבא
git diff main..feature
השוואת שני ענפים
git diff HEAD~1 HEAD
השוואת הקומיט האחרון עם ההורה שלו
git show <hash>
הצגת פרטים ו-diff של קומיט אחד
git show HEAD:file.txt
הצגת קובץ כפי שהיה בקומיט
git log --stat
הצגת קומיטים עם סיכומי קבצים ששונו
git shortlog -sn
ספירת קומיטים מקובצים לפי מחבר
ביטול שינויים
10git restore file.txt
ביטול שינויים מחוץ ל-stage בקובץ
git restore --staged file.txt
ביטול stage לקובץ תוך שמירת השינויים
git restore --source=HEAD~1 file.txt
שחזור קובץ מקומיט קודם
git checkout -- file.txt
הדרך הקלאסית לביטול שינויים מקומיים
git reset --soft HEAD~1
ביטול הקומיט האחרון, שמירת השינויים ב-stage
git reset --mixed HEAD~1
ביטול הקומיט האחרון, שמירת השינויים מחוץ ל-stage
git reset --hard HEAD~1
ביטול הקומיט האחרון ומחיקת השינויים
git revert <hash>
יצירת קומיט חדש שמבטל קומיט
git clean -fd
מחיקת קבצים ותיקיות שאינם במעקב
git clean -nd
תצוגה מקדימה של מה ש-clean ימחק
stash
10git stash
שמירת שינויים שלא קומטו וניקוי העץ
git stash push -m "wip"
stash לשינויים עם הודעה מתארת
git stash -u
stash כולל קבצים שאינם במעקב
git stash list
הצגת כל ערכות השינויים ב-stash
git stash show -p
הצגת ה-diff של ה-stash האחרון
git stash apply
החלה מחדש של ה-stash האחרון ושמירתו
git stash pop
החלה מחדש של ה-stash האחרון והסרתו
git stash apply stash@{2}
החלה מחדש של stash מסוים לפי אינדקס
git stash drop stash@{0}
מחיקת רשומת stash בודדת
git stash clear
מחיקת כל רשומות ה-stash
תגיות
9git tag
הצגת כל התגיות
git tag v1.0.0
יצירת תגית קלילה ב-HEAD
git tag -a v1.0.0 -m "Release 1.0.0"
יצירת תגית מבוארת עם הודעה
git tag -a v1.0.0 <hash>
תיוג קומיט עבר מסוים
git show v1.0.0
הצגת פרטים של תגית
git push origin v1.0.0
push לתגית בודדת ל-remote
git push origin --tags
push לכל התגיות המקומיות ל-remote
git tag -d v1.0.0
מחיקת תגית מקומית
git push origin --delete v1.0.0
מחיקת תגית ב-remote
לוגים והיסטוריה
12git log
הצגת היסטוריית הקומיטים המלאה
git log --oneline
הצגת לוג קומפקטי של שורה אחת לכל קומיט
git log --oneline --graph --all
הצגת ענפים כגרף ASCII
git log -p
הצגת היסטוריית קומיטים עם diffs
git log --author="Jane"
סינון היסטוריה לפי מחבר
git log --since="2 weeks ago"
סינון היסטוריה לפי טווח תאריכים
git log --pretty=format:"%h %an %s"
התאמת פורמט פלט הלוג
git blame file.txt
הצגת מי שינה לאחרונה כל שורה
git reflog
הצגת היסטוריית המיקומים של HEAD
git bisect start
התחלת חיפוש בינארי אחר קומיט פגום
git bisect good <hash>
סימון קומיט כתקין במהלך bisect
git bisect bad
סימון הקומיט הנוכחי כפגום
אף רשומה אינה תואמת ל-„:q”.
צריך עזרה?
נתקלת בבעיה בכלי הזה? ספר לצוות שלנו.