יצירת מאגר ראשון

ישנן שתי דרכים להתחיל לעבוד עם git: ליצור מאגר חדש מאפס, או לשכפל מאגר קיים מ-GitHub.

יצירת מאגר חדש - git init

# יצירת תיקייה חדשה והפיכתה למאגר
mkdir my-project
cd my-project
git init

הפלט יהיה משהו כמו:

Initialized empty Git repository in /path/to/my-project/.git/

מאותו רגע, תיקיית my-project היא מאגר git.

יצירה ישירה עם שם

git init my-project
cd my-project

הפקודה תיצור גם את התיקייה וגם תאתחל אותה.

שכפול מאגר קיים - git clone

לוקח מאגר קיים (לרוב מ-GitHub) ויוצר עותק מקומי שלו:

# שכפול עם HTTPS
git clone https://github.com/user/repo.git

# שכפול לתיקייה בעלת שם מותאם
git clone https://github.com/user/repo.git my-folder

# שכפול עם SSH (דורש מפתח SSH)
git clone [email protected]:user/repo.git

git clone עושה כמה דברים בו-זמנית: 1. יוצר תיקייה מקומית 2. מעתיק את כל ההיסטוריה 3. יוצר remote בשם origin שמצביע למקור 4. עושה checkout ל-branch הראשי

מבנה תיקיית .git/

לאחר git init או git clone, תיווצר תיקייה נסתרת בשם .git/:

.git/
├── HEAD              ← מצביע ל-branch הנוכחי
├── config            ← הגדרות מקומיות של המאגר
├── description       ← תיאור (משמש בעיקר ל-GitWeb)
├── hooks/            ← scripts אוטומטיים
├── info/             ← מידע נוסף (כמו exclude)
├── objects/          ← כל ה-commits, trees ו-blobs
├── refs/             ← המצביעים של ה-branches וה-tags
└── logs/             ← היסטוריית שינויים של refs

⚠️ אזהרה: אסור לערוך ידנית את הקבצים בתיקיית .git/. אם משהו ישתבש - עלולים לאבד את כל ההיסטוריה.

בדיקה שהמאגר אותחל

# הצגת ה-branch הנוכחי וסטטוס הקבצים
git status

# במאגר ריק תקבל:
# On branch main
# No commits yet
# nothing to commit

ה-commit הראשון

# יצירת קובץ
echo "# My Project" > index.md

# הוספה ל-staging
git add index.md

# commit ראשון
git commit -m "Initial commit"

מזל טוב - יש לכם מאגר עם commit ראשון.

בדקו את עצמכם

נסו לענות לבד לפני שאתם פותחים את התשובה.

  1. איזו פקודה יוצרת מאגר חדש בתיקייה?

    1. git init
    2. git new
    3. git start
    4. git create
    הצגת התשובה

    תשובה א. git init יוצר את התיקייה הנסתרת .git.