מהו GitHub? יותר משליטה בגרסת Git בענן

GitHub הוא בבסיסו שירות אירוח מאגרי Git, כלומר ניהול קוד קוד מבוסס ענן או מערכת בקרת גרסאות, אך זו רק ההתחלה. בנוסף, GitHub מיישם תכונות לבדיקת קוד (בקשות משיכה, הבדלות וביקורות ביקורת), ניהול פרויקטים (כולל מעקב אחר הקצאות והקצאות), שילובים עם כלי מפתח אחרים, ניהול צוות, תיעוד ו"קידוד חברתי ".

משהו כמו אתר רשת חברתית למתכנתים, GitHub הוא סביבה פתוחה שבה מתכנתים יכולים לשתף ולשתף פעולה באופן חופשי (אפילו אד הוק) בקוד קוד פתוח. GitHub מקל על איתור קוד שימושי, העתקת מאגרים לשימושך והגשת שינויים לפרויקטים של אחרים. כתוצאה מכך, GitHub הפך להיות בית לכל פרוייקט קוד פתוח בעל חשיבות כלשהי.

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

בקרת גרסת Git

לפני שנוכל להבין מה GitHub עושה ואיך GitHub עובד, עלינו להבין את GitHub. גיט היא מערכת בקרת גרסאות מבוזרת, שנכתבה במקור על ידי לינוס טורוואלדס בשנת 2005 ובסיוע מקהילת ליבות הלינוקס. אני לא כאן כדי למכור אותך ב- Git, אז אני אחסוך ממך את המשחק עד כמה הוא מהיר וקטן וגמיש ופופולרי, אך עליך לדעת שכשאתה משכפל מאגר Git (בקיצור "רפו") אתה מקבל את כל היסטוריית הגרסאות במחשב שלך, ולא רק תמונת מצב מענף אחד בו זמנית.

Git התחיל ככלי שורת פקודה, כיאה למקורו בקהילת הגרעינים של לינוקס. אתה עדיין יכול להשתמש בשורת הפקודה Git, אם תרצה בכך, אך אינך צריך. במקום שורת הפקודה או בנוסף לה, תוכלו להשתמש בלקוח GitHub החינמי ב- Windows או Mac, או בכל אחד ממספר ממשקי משתמש אחרים עבור Git, או בעורך קוד שמשתלב עם Git. בתחילה קל יותר להשתמש בכל האפשרויות הללו מאשר בשורת הפקודה. שורת הפקודה של Git מותקנת מראש ברוב מערכות המק והלינוקס ותומכת בכל הפעולות; ממשקי ה- GUI תומכים בדרך כלל בקבוצת משנה נפוצה של פעולות Git.

Git שונה ממערכות בקרת גרסאות ישנות יותר כגון Subversion בכך שהוא מופץ ולא מרכזי. זה גם די מהיר, במיוחד מכיוון שרוב הפעולות מתרחשות במאגר המקומי שלך. עם זאת, השימוש ב- Git מוסיף רמה של מורכבות: הקצאת קוד למאגר המקומי שלך ודחיפת ההתחייבויות שלך למאגר מרוחק הם צעדים נפרדים. כשצוותים שוכחים את זה (או שלא לימדו אותנו על זה) זה יכול להוביל למצבים שבהם מפתחים שונים עובדים עם בסיסי קוד שהתפצלו.

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

פונקציונליות של GitHub

כבר ציינתי כי GitHub הוא שרת Git מבוסס ענן לאחסון קוד וקידוד חברתי, וכי הוא מיישם תכונות לבדיקת קוד (בקשות משיכה, הבדלות ובקשות סקירה), ניהול פרויקטים (כולל מעקב אחר נושא והקצאה), שילובים עם כלי מפתח אחרים, ניהול צוות ותיעוד.

החידוש האחרון בקידוד חברתי של GitHub הוא מחברים משותפים להתחייבות , שאותם אתה משיג על ידי הוספת טריילר אחד או יותר "שותף על ידי" לסוף המסר להתחייב. מנגנון זה אינו משפיע על ליבת ה- repo כשלעצמה, ואינו משנה את מראה ה- repo ב- Git רגיל, אך ב- GitHub הכרום יציג מספר מחויבים ברשימת ההתחייבות וייתן קרדיט לכל מחבר שותף. תרשים תרומה.

אם תרצה, תוכל להרחיב את GitHub באמצעות ממשק ה- API של GitHub GraphQL. זהו שיפור משמעותי בהשוואה ל- API הקודם של GitHub, שהתבסס על שיחות REST.

GitHub Enterprise

GitHub.com הוא שירות אירוח ענן שיכול לטפל במגוון סוגי חשבונות: בחינם (רשימות ציבוריות בלבד) וחשבונות מפתחים בתשלום (7 $ לחודש), צוותים (9 $ למשתמש לחודש) ועסקים (21 $ למשתמש לחודש ). אם ברצונך להפעיל את GitHub Enterprise במקום או במופע ענן משלך ב- AWS, Microsoft Azure, Google Cloud Platform או IBM Cloud, תוכל לעשות זאת תמורת אותו מחיר של 21 דולר למשתמש לחודש כחשבון עסקי מתארח. GitHub Enterprise מוסיף כמה תכונות שימושיות, כגון העברת הודעות בתוך האפליקציה למשתמשים והקצאת גישה המשולבת בספריות LDAP, אך מוותרת על ה- SLA של זמן הפעלה של 99.95 אחוזים של GitHub.com עבור חשבונות עסקיים מתארחים.

GitHub לעומת Bitbucket

GitHub אינו שירות ה- Git המתארח היחיד, ו- GitHub Enterprise אינו המוצר המקומי היחיד של חברות. Atlassian Bitbucket מתחרה בשתיהן, עם תמחור מעט נמוך יותר ועם רמת צוות חינמית של חמישה חברים הכוללת מאגרים פרטיים ללא הגבלה ושימוש ב- Bitbucket Pipelines לאינטגרציה רציפה. GitHub הוא אתר פופולרי יותר לפרויקטים של קוד פתוח ויש לו מאגר גדול בהרבה של מפתחי קוד פתוח. התמחור של Bitbucket נוח יותר לסטארטאפים קטנים.

GitHub לעומת GitLab

GitLab מתחרה גם עם GitHub וגם עם Bitbucket, שניהם מתארחים ומקומיים. על פני השטח נראה כי ל- GitLab יש יותר פונקציונליות של מחזור חיים מאשר לאחרים, אך ההבדל בין אטלסיאן נעלם בעיקר אם אתה כולל את ג'ירה כשאתה מעריך את Bitbucket. GitLab מציעה תכונות ענן בתכנית זהב לפרויקטים של קוד פתוח בחינם, אך פונקציונליות נוספת זו לא ממש מפצה על קהילת המפתחים הגדולה עם קוד פתוח ב- GitHub.

שולחן העבודה של GitHub

שולחן העבודה של GitHub, המוצג להלן, מקל על ניהול המאגרים של GitHub.com ו- GitHub Enterprise. הוא אמנם לא מיישם את כל התכונות של שורת הפקודה Git ו- GUI של GitHub, אך מיישם את כל הפעולות שתבצע על בסיס יומי משולחן העבודה תוך כדי תרומה לפרויקטים. בדרך כלל, תשכפל ריבוטים ממכשירי GitHub לשולחן העבודה של GitHub, תסנכרן אותם לפי הצורך, תיצור סניפים לעבודה שלך, תחייב את עבודתך ולעיתים תחזור על התחייבות אחת או יותר.

כדי לעבוד עם ריבוטים שחסרים לך הרשאות התחייבות ושיתוף פעולה, בדרך כלל אתה מתחיל בזיוף הריבו ב- GitHub ושכפול המזלג לשולחן העבודה שלך. לאחר מכן אתה מוסיף את כל הענפים שאתה צריך ב- GitHub Desktop, מבצע את כל השינויים שתרצה, בודק את עבודתך, דוחף את ההתחייבויות חזרה לריפו המזלג המרוחק שלך, ולבסוף מייצר בקשת משיכה לפרויקט האב.

אתה יכול לראות את כפתור בקשת המשיכה בפינה השמאלית העליונה של ממשק שולחן העבודה של GitHub. אתה יכול גם לראות התחייבויות רבות בפרויקט Neo4j שהיו מיזוג של סניפים או בקשות משיכה. זה אופייני לפרויקטים של קוד פתוח עם מעט התחייבויות ותורמים רבים.

עורך אטום

אתה יכול להשתמש בכל עורך תכנות שתרצה כדי לערוך קוד, כולל עורך Atom של קוד פתוח בחינם של GitHub (שמוצג למטה), שמשתלב היטב עם GitHub ו- GitHub Desktop. אתה יכול להשתמש ב- Atom ב- MacOS, Windows או Linux. אתה יכול לפתוח את Atom משולחן העבודה GitHub על ידי לחיצה ימנית על המאגר שברצונך לגלוש או לערוך.

אטום נשלח עם כ- 90 חבילות, ארבע ערכות ממשק משתמש ושמונה ערכות תחביר. תוכל להוסיף כל אחת מ- 7,000 חבילות ו -2,000 ערכות נושא להתקנת Atom שלך. חבילות יכולות לתמוך בשפות תכנות ספציפיות, כגון TypeScript, או להוסיף פונקציונליות, כגון Hydrogen, סביבת קידוד אינטראקטיבית התומכת ב- Python, R, JavaScript וגרעיני Jupyter אחרים.

Atom בנויה עם שילוב HTML, JavaScript, CSS ו- Node.js. הוא פועל על ידי Electron, מסגרת לבניית אפליקציות חוצות פלטפורמות באמצעות טכנולוגיות אינטרנט. שולחן העבודה של GitHub פועל גם על אלקטרונים.

פרויקטים של GitHub

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

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

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

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

ביקורות קוד ב- GitHub מאפשרות לצוות מבוזר לשתף פעולה בצורה אסינכרונית. כלים שימושיים של GitHub לסוקרים כוללים הבדלים (המחצית התחתונה של צילום המסך למטה), היסטוריה (המחצית העליונה) ותצוגת האשמה (דרך להציג את התפתחות קובץ התחייבות על ידי ביצוע). דיוני קוד ב- GitHub נכנסים לתגובות המוצגות בשורה אחת עם שינויי הקוד שלך. אם הכלים המובנים אינם מספיקים לפרויקט שלך, תוכל להוסיף כלי בדיקת קוד ושילוב מתמשך משוק GitHub. תוספות ל- Marketplace הן לרוב בחינם לפרויקטים עם קוד פתוח.

GistHub gists

Gists הם מאגרי GitHub מיוחדים לשיתוף העבודה שלך (ציבורית) או לשמירת עבודה לשימוש חוזר מאוחר יותר (סודי). הם יכולים להכיל קבצים בודדים, חלקי קבצים או יישומים מלאים. אתה יכול להוריד גיסטים, לשכפל אותם, למזלג אותם ולהטמיע אותם.

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

אין אפשרות לחפש רשימות סודיות, אך כל מי שיש לו את כתובת האתר יכול לראות אותן. אם אתה באמת רוצה שהקוד שלך יהיה מוגן, השתמש במאגר פרטי.

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