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

GitList הוא Frontend PHP עבור Git זה מייפה ומפשט גלישה המאגרים Git שלך, ואתה יכול לארח אותו בכל מקום שתרצה. להיפרד דמי מופקע עבור אירוח המאגר הפרטי שלך; GitList הוא לגמרי בחינם, בשל תלות מינימלית שלה, אתה יכול אפילו להפעיל את זה (כמה) תוכניות אירוח אתרים משותפים.

הממשק בטח נראה מוכר לך GitHub משתמשים שם בחוץ! זה די חלקלק ומראה מודרני לעומת ממשק Clunkier של Gitweb, ברירת המחדל של Git ברירת המחדל של האינטרנט, והוא מגיע ארוז עם תכונות ידידותיות למשתמש. חלקם כוללים:

  • תמיכה עבור גלישה מאגרים מרובים
  • מספר סניפים ותג תמיכה
  • הזנות RSS
  • הדגשת תחביר
  • סטטיסטיקה על המאגרים שלך
  • קלות ההתקנה לעומת אחרים מבוססי אינטרנט Git frontends

דרישות

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

  • Git
  • גישה SSH

שים לב שגישת SSH אינה נדרשת להתקנת GitList עצמה, אך יהיה עליך ליצור ולנהל את מאגרי ה- Git המרוחקים משורת הפקודה.

בנוסף לשני פריטים אלה, עליך:

  • Apache עם mod_rewrite מופעל או Nginx בשרת המרוחק שלך
  • PHP 5.3.3 בשרת המרוחק
  • Git על המחשב המקומי שלך

הַתקָנָה

לתפוס tarball של קוד GitList מן הדף הראשי על GitList.org. אתה יכול לבחור בין שחרור יציבה האחרונה, אשר בעת כתיבת שורות אלה הוא 0.3, או לבנות את הפיתוח. בחרתי לבנות את הבנייה, אבל אתה יכול לבצע את ההוראות ההתקנה זהה בכל מקרה.

חלץ את tarball לתוך הספרייה באתר שלך שאליו אתה רוצה להתקין GitList - לא להתבלבל עם הספרייה המאגרים שלך בפועל Git מותקנים, אשר נגיע אליו קצת.

מעתה ואילך, ההנחיות במאמר זה יניחו שאתה מחובר לאתר שלך באמצעות SSH. הזן את ספריית GitList שלך והגדר 777 הרשאות למדריך המשנה "קובץ שמור" (צור אותו אם הוא אינו קיים):

 מטמון 777 chmod 

עכשיו להעביר את הקובץ config.ini-example כדי config.ini:

 mv config.ini-example config.ini 

פתח את config.ini לעריכה באחד מעורכי הטקסט הזמינים בשרת המרוחק. לדוגמה:

 12 לרשת 

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

מלא את סעיף repositories בקוד עם הנתיב המלא של ספריית הפרויקט Git. אם אתה לא יודע את הנתיב המלא, אתה יכול cd לתוך הספרייה ולהזין pwd ; הפלט הוא הנתיב המלא. במקרה זה, ספריית הפרויקטים של Git נקראה "gitprojects", והיא התגוררה מתחת לספריית המשנה "git" של האתר הראשי שלי, לכן הקלדתי את הנתיב שלי בהתאם (מבנה התיקיות עשוי להשתנות על פני מארחי אינטרנט, לכן היו זהירים):

קבלת Git מאגר על השרת שלך

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

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

 cd צבים git init # זה מאתחל את המאגר git להוסיף * #this גורם לכל הקבצים בספרייה להיות במעקב עבור תיקונים git להתחייב -m "נוצר ריפו שלי" * # מחייב את הקבצים ומוסיף תגובה 

עכשיו SSH לתוך השרת המרוחק שלך כדי ליצור ולאתחל מאגר חשוף:

 צבים - 

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

 git מרחוק להוסיף מקור ssh: //[email protected]/home/yourusername/public_html/gitprojects/turtles.git 

עכשיו לדחוף את הקבצים לשרת המרוחק:

 git לדחוף - כל המקור 

טה-דה! עכשיו יש לך עותק מרוחק של מאגר Git שלך, כי אתה יכול לגלוש עם GitList. אל תשכח לשים את הנתיב של ספריית האב לתוך config.ini הראשון שלך.

אבטחת המאגר שלך

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

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

סיכום

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