Menu
Coddy logo textTech

Git Online

לכתוב, להריץ ולשתף קטעי קוד - בלי שום התקנה.

טרמינל Git
user$ git init -q
user$ git symbolic-ref HEAD refs/heads/main
user$ git config user.name "You"
user$ git config user.email "you@example.com"
user$ echo "hello" > file.txt
user$ git add file.txt
user$ git commit -q -m "Add file.txt"
user$ git checkout -b feature
user$ echo "feature work" >> file.txt
user$ git commit -q -am "Feature work"
user$ git checkout -
user$ git merge feature
user$
מאגר

לחצו על הרצה כדי לראות את גרף ה-commits.

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

לנסות פקודות Git נפוצות

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

ליצור מאגר ולעשות commit ראשוןלאתחל מאגר, להוסיף קובץ ל-Staging, לעשות commit ולבדוק את הסטטוס.
  1. git init
  2. git config user.name "You"
  3. git config user.email "you@example.com"
  4. echo "# My Project" > README.md
  5. git add README.md
  6. git commit -m "Initial commit"
  7. git status
  8. git log --oneline
ליצור ענף ולמזג אותולפצל ענף, לעשות שינוי, commit, ואז למזג את הענף בחזרה ל-main.
  1. git init
  2. echo "hello" > app.txt
  3. git add app.txt
  4. git commit -m "Add app.txt"
  5. git checkout -b feature
  6. echo "new feature" >> app.txt
  7. git commit -am "Work on feature"
  8. git checkout -
  9. git merge feature
  10. git log --oneline --graph
לבטל את ה-commit האחרוןלעשות commit שמתחרטים עליו, ואז לבטל אותו תוך שמירה על השינויים.
  1. git init
  2. echo "v1" > notes.txt
  3. git add notes.txt
  4. git commit -m "Add notes.txt"
  5. echo "v2" >> notes.txt
  6. git commit -am "Oops, wrong message"
  7. git reset --soft HEAD~1
  8. git status
  9. git commit -m "Update notes.txt"
  10. git log --oneline
לדחוף ל-remote בפעם הראשונהלהריץ את שלוש הפקודות ש-GitHub מציג למאגר חדש, מול remote מקומי.
  1. git init
  2. echo "# My Project" > README.md
  3. git add README.md
  4. git commit -m "First commit"
  5. git branch -M main
  6. git init --bare remote.git
  7. git remote add origin remote.git
  8. git push -u origin main
  9. git remote -v
לאחד commits לאחדלהפוך שני commits של עבודה בתהליך ל-commit נקי אחד, בלי עורך.
  1. git init
  2. echo "v1" > app.txt
  3. git add app.txt
  4. git commit -m "Add app.txt"
  5. echo "v2" >> app.txt
  6. git commit -am "WIP"
  7. echo "v3" >> app.txt
  8. git commit -am "More WIP"
  9. git reset --soft HEAD~2
  10. git commit -m "Finish app.txt"
  11. git log --oneline
לעשות cherry-pick ל-commit מענף אחרלהעתיק תיקון אחד מענף ל-main בלי למזג את כל הענף.
  1. git init
  2. echo "hello" > app.txt
  3. git add app.txt
  4. git commit -m "Add app.txt"
  5. git checkout -b hotfix
  6. echo "fixed" > fix.txt
  7. git add fix.txt
  8. git commit -m "Fix the bug"
  9. git checkout -
  10. git cherry-pick hotfix
  11. git log --oneline --all --graph

עורך Git אונליין עם גרף commits חי

עורך Git חינמי שמריץ git אמיתי בטרמינל Linux מבודד, ולא חיקוי שלו ב-JavaScript. הקלידו פקודות בשורת הפקודה, כמו git init, git add, git commit, git branch, git merge, git rebase, git reset, לחצו על הרצה, וחלונית המאגר מציירת מחדש את גרף ה-commits, את הענפים, את HEAD ואת תיקיית העבודה אחרי כל שורה בסקריפט. זו הדרך המהירה ביותר לתרגל Git אונליין ולראות בפועל מה כל פקודה עשתה.

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

מה מייחד את עורך ה-Git האונליין הזה

  • Git אמיתי, פלט אמיתי: סביבת הריצה מפעילה את הקובץ הבינארי המקורי של git על Linux, כך שהודעות שגיאה, git log --graph, git status והדגלים מתנהגים כמו במחשב שלכם, בניגוד לסימולטור Git שמכיר רק את הפקודות שהמפתחים שלו מימשו. ההבדל המכוון היחיד: זהות המחבר ותאריכי ה-commits קבועים, כך שה-hashes נשארים זהים בין הרצות.
  • גרף commits שמתעדכן אחרי כל שורה: ענפים כנתיבים, merges כקווים מעוגלים, HEAD וכל ref כתווית על ה-commit שלו, וגם הקבצים שב-staging, שהשתנו, שלא במעקב או שבקונפליקט, כפי שהם נקראים מ-git status. לחצו על שלב כדי לחזור אחורה בהיסטוריה של הסשן.
  • תרגלו את הפקודות שהכי מחפשים: ביטול commit, squash של commits, rebase על main, cherry-pick, stash, פתרון קונפליקט merge ו-force-push בבטחה. טענו תהליך עבודה מוכן מהרשימה שלמטה, או פתחו כל דף במדריך פקודות Git ולחצו על "לנסות בזמן אמת".
  • remotes בלי רשת: צרו מאגר bare מקומי, הוסיפו אותו כ-origin, ותרגלו מולו git push, git fetch, git pull ו-git clone. הגרף מראה את origin/main זז לצד main.
  • הרצות דטרמיניסטיות: התאריכים והזהות קבועים, כך שאותו סקריפט תמיד מייצר את אותם hashes של commits. שתפו סקריפט עם חבר ללימודים ושניכם תראו את אותו גרף.

מה לנסות בעורך ה-Git האונליין

  • branch ו-merge: git checkout -b feature, בצעו עליו commit, חזרו ל-main, בצעו commit גם שם, ואז git merge feature וצפו ב-merge commit מחבר את שני הנתיבים.
  • ביטול בטוח: בצעו commit שאתם מתחרטים עליו, הריצו git reset --soft HEAD~1, וראו את ה-commit דוהה מהגרף בזמן שהשינויים שלכם חוזרים כקבצים ב-staging. אחר כך נסו git revert והשוו.
  • rebase לעומת merge: בנו את אותה היסטוריה של שני ענפים פעמיים, סיימו אחת עם git merge ואת השנייה עם git rebase main, והשוו את הצורה של שני הגרפים זה לצד זה.
  • קונפליקט merge בכוונה: שנו את אותה שורה בשני ענפים, בצעו merge, וצפו בקובץ נוחת בשורת הקונפליקטים. תקנו אותו, git add, git commit, וראו את הקונפליקט נעלם.

שאלות נפוצות על עורך Git אונליין

עורך ה-Git האונליין הזה חינמי?
כן. עורך ה-Git חינמי, בלי הרשמה ובלי התקנה. פותחים את הדף, מקלידים פקודה ולוחצים על הרצה.
זה Git אמיתי או סימולציה?
Git אמיתי. כל הרצה מפעילה את הסקריפט שלכם עם הקובץ הבינארי המקורי של git בתוך קונטיינר Linux מבודד, כך שהפקודות, הדגלים, הפלט והודעות השגיאה זהים למה שרואים מקומית. שני דברים נוספו בכוונה: זהות מחבר ברירת מחדל (ש-git config user.name משלכם דורס, כמו מקומית) ותאריכי commit קבועים, כדי שה-hashes של ה-commits יהיו זהים בכל הרצה. שום דבר לא יכול לבקש מכם קלט באמצע ההרצה, ולכן פקודה אינטראקטיבית כמו git rebase -i צריכה עורך שמופעל מתוך הסקריפט: הדוגמאות מראות איך.
איך גרף ה-commits עובד?
אחרי כל פקודה בסקריפט, סביבת הריצה שומרת את ה-commits של המאגר, את ה-refs, את HEAD, את רשימת ה-stash ואת git status. הדף מצייר את הגרף מתמונות המצב האלה: נתיב אחד לכל ענף, merges כקווים מעוגלים וכל ref כתווית. לחצו על מספר שלב כדי לראות את המאגר כפי שהיה מיד אחרי אותה שורה. בסשן ארוך מאוד, הפקודות המוקדמות נשמרות רק בסופן, ורצועת השלבים מציגה רק את המצבים שנשמרו בפועל.
אפשר לתרגל כאן branching, merging ו-rebasing?
כן, בשביל זה הגרף קיים. צרו ענפים, בצעו עליהם commits, merge, rebase, cherry-pick, reset ו-revert, וראו איך כל פעולה משנה את התמונה. זו חלופה מעשית למשחק branching, עם Git אמיתי מתחת.
אפשר להשתמש ב-git push, pull, fetch ו-clone?
מול remote מקומי, כן. לסביבת הריצה אין גישה לרשת, ולכן git clone https://… לא יכול להגיע לאינטרנט. צרו מאגר bare בתיקיית משנה (git init --bare remote.git), הוסיפו אותו כ-origin, ובצעו ממנו push, fetch, pull ו-clone. ענפי ה-remote-tracking מופיעים בגרף כמו שהיו מופיעים עבור GitHub.
העבודה שלי נשמרת בין הרצות?
לא. כל הרצה מתחילה מתיקייה ריקה ומריצה מחדש את כל הסקריפט, וזה מה שמאפשר את ציר הזמן. שמרו את הפקודות שלכם בשורת הפקודה (Shift+Enter מוסיף שורה), והשתמשו באיפוס כדי לחזור לסקריפט ההתחלתי.
במה זה שונה מטרמינל ה-Linux האונליין?
זה אותו טרמינל מבודד (גם Git רץ שם), עם חלונית מאגר נוספת. דף טרמינל ה-Linux מיועד לפקודות shell ולסקריפטים; הדף הזה בונה את הסשן שלכם כך שגרף ה-commits ומצב תיקיית העבודה נשמרים אחרי כל שורה.
יש קורס שמלמד Git מאפס?
כן. קורס ה-Git החינמי של Coddy מתקדם מ-git init לענפים, merges, rebases ו-remotes עם תרגילים שנבדקים, ובכל דף פקודה במדריך פקודות Git יש כפתור "לנסות בזמן אמת" שפותח את העורך הזה עם דוגמה שאפשר להריץ.