פוסט
GitHub מאפס לגיבור: חשבון, SSH ו-push ראשון
חלק 1 במדריך ל-GitHub: מה GitHub מוסיף ל-Git, יצירת ריפוזיטורי, התחברות עם gh, מפתח SSH או טוקן, והעלאת פרויקט לרשת.
המדריך הזה מעלה לרשת את ספר המתכונים מ-Git מאפס לגיבור: נשנה אותו דרך pull request, ניתן לרובוט לבדוק אותו, ונפרסם אותו כאתר. הוא מניח היכרות עם git add, git commit וענפים.
מה זה GitHub (ומה הוא מוסיף ל-Git)
Git הוא כלי בקרת הגרסאות; הוא רץ על המחשב שלנו ולא צריך אינטרנט. GitHub מארח ריפוזיטורי של Git בענן, ומוסיף כלים לתכנון, ביקורת, בדיקות ופריסה.
הריפוזיטורי עצמו (ה-commits) הוא Git רגיל. השכבה של GitHub מעליו:
- Issues למעקב אחרי משימות, באגים ורעיונות.
- Pull requests כדי להציע שינוי ולבדוק אותו לפני שהוא נכנס.
- Actions להרצה אוטומטית של בדיקות ופריסות.
- Pages לאירוח אתר סטטי ישירות מריפוזיטורי.
- Projects, Releases, Discussions וארגז כלי אבטחה סביב כל זה.
GitLab ו-Bitbucket עושים אותה עבודה בשמות אחרים; החלק של Git עובד אותו דבר בכולם.
מתחילים
פותחים חשבון וריפוזיטורי
נרשמים ב-github.com ולוחצים על New repository (תפריט + בפינה העליונה):
- שם:
recipes. - נראות: public (כל אחד יכול לקרוא) או private (רק מי שהוזמן). אפשר לשנות אחר כך.
- Add a README: כן. README הוא קובץ Markdown שמוצג בדף הראשי של הריפוזיטורי, הדבר הראשון שכל אחד קורא.
- .gitignore ורישיון: תבניות לא חובה.
.gitignoreשומר זבל מחוץ לריפו. בלי רישיון, אף אחד אחר לא רשאי רשמית להשתמש בקוד שלנו.
מחברים את המחשב: SSH או HTTPS
כדי לעשות push, GitHub צריך לדעת שזה אנחנו, והוא כבר לא מקבל את סיסמת החשבון עבור פעולות Git דרך HTTPS. יש שלוש דרכים טובות:
-
GitHub CLI (
gh) הכי קל. מתקינים מ-cli.github.com (אוbrew install gh), ואז:gh auth login gh auth statusהוא מחבר אותנו דרך הדפדפן ושומר את הפרטים עבור Git.
gh browseפותחת את הריפו הנוכחי בדפדפן, ו-gh <command> --helpמציגה כל דגל. -
מפתח SSH, שאני מעדיף: מגדירים פעם אחת ושוכחים:
ssh-keygen -t ed25519 -C "dana@example.com"מקבלים את המיקום הרגיל ובוחרים סיסמה (passphrase). נוצרים מפתח פרטי (
~/.ssh/id_ed25519, לעולם לא משתפים) ומפתח ציבורי (~/.ssh/id_ed25519.pub). מדביקים את הציבורי ב-Settings → SSH and GPG keys → New SSH key באתר. ואז בודקים:ssh -T git@github.comHi dana! You've successfully authenticated, but GitHub does not provide shell access.זו הודעת ההצלחה. כתובות הריפוזיטורי נראות אז כך:
git@github.com:dana/recipes.git. -
HTTPS עם personal access token עובד בכל מקום, אבל מחייב לנהל טוקן. עוזר אישורים (credential helper, ש-
gh auth loginמגדיר) הופך את זה לפשוט.
מעלים את הפרויקט ל-GitHub
הוא כבר קיים ב-GitHub. משכפלים אותו:
git clone git@github.com:dana/recipes.git
cd recipes
הוא קיים רק על המחשב שלנו, כמו ספר המתכונים. יוצרים ב-GitHub ריפוזיטורי ריק בלי README, ואז מחברים ועושים push:
git remote add origin git@github.com:dana/recipes.git
git push -u origin main
או שה-CLI עושה את שני השלבים, מתוך תיקיית הפרויקט:
gh repo create recipes --public --source=. --push
מרעננים את דף הריפוזיטורי, והקבצים וההיסטוריה המלאה כבר שם.