Git Submodule
עודכן לאחרונה
submodule מטמיע מאגר Git אחד בתוך מאגר אחר, נעוץ לקומיט מסוים. מאגר האב מתעד באיזה קומיט של ה-submodule הוא תלוי, כך שכולם מקבלים את אותה גרסה. כך כוללים ספרייה או רכיב משותף שחי במאגר משלו, בלי להעתיק את הקוד שלו.
נסו את הפקודות האלה בעורך הטרמינל אונליין: shell אמיתי בדפדפן, בלי להתקין כלום.
תחביר
| פקודה | מה היא עושה |
|---|---|
git submodule add <url> libs/x | הוספת מאגר כ-submodule בנתיב libs/x |
git clone --recurse-submodules <url> | שכפול מאגר וה-submodules שלו |
git submodule update --init --recursive | אתחול והורדה של submodules אחרי שכפול רגיל |
git submodule update --remote | עדכון submodules לקומיט האחרון שלהם |
git submodule status | הצגת הקומיט של כל submodule |
מקרים נפוצים
| מטרה | פקודה |
|---|---|
| שכפול פרויקט שמשתמש ב-submodules | git clone --recurse-submodules <url> |
| הורדת submodules אחרי ששכפלתם כבר | git submodule update --init --recursive |
| קידום submodule לגרסה האחרונה שלו | git submodule update --remote |
שאלות נפוצות על git submodule
מה זה git submodule?
submodule הוא מאגר Git שמקונן בתוך מאגר Git אחר בקומיט קבוע. מאגר האב שומר מצביע לקומיט המדויק הזה ולא את הקבצים של ה-submodule, כך ששותפים לעבודה מקבלים את אותה גרסה. משתמשים בו כדי לכלול תלות או רכיב משותף שיש לו מאגר והיסטוריה משלו.
איך משכפלים מאגר עם submodules?
השתמשו ב-
git clone --recurse-submodules <url> כדי לשכפל את מאגר האב ואת כל ה-submodules שלו בצעד אחד. אם כבר שכפלתם בלי הדגל הזה, הריצו אחר כך git submodule update --init --recursive כדי למלא את תיקיות ה-submodules.איך מעדכנים submodule לקומיט האחרון?
הריצו
git submodule update --remote, שמוריד את הענף שבמעקב של כל submodule ומעביר אותו לקומיט האחרון. אחר כך צרו קומיט לשינוי במאגר האב, כי מאגר האב מתעד על איזה קומיט של ה-submodule הוא מצביע: העדכון לא נשמר עד שתיצרו קומיט למצביע הזה.למה תיקיית ה-submodule ריקה אחרי השכפול?
כי שכפלתם בלי
--recurse-submodules, ולכן Git יצר את התיקיות אבל לא הוריד את התוכן שלהן. תקנו את זה עם git submodule update --init --recursive, שמאתחל ומוריד כל submodule.אפשר לתרגל את זה אונליין?
כן. פתחו את עורך הטרמינל אונליין כדי להריץ
git submodule ב-shell אמיתי בדפדפן, בלי להתקין כלום. גם קורס ה-Git האינטראקטיבי והחינמי של Coddy מלמד הקמת מאגר צעד אחר צעד.