Menu
Coddy logo textTech

Git Submodule

עודכן לאחרונה

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

נסו את הפקודות האלה בעורך הטרמינל אונליין: shell אמיתי בדפדפן, בלי להתקין כלום.

git submodule מטמיע מאגר אחר בתוך המאגר שלכם, נעוץ לקומיט אחד מדויק.

תחביר

פקודהמה היא עושה
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

מקרים נפוצים

מטרהפקודה
שכפול פרויקט שמשתמש ב-submodulesgit 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 מלמד הקמת מאגר צעד אחר צעד.
איור של שפות התכנות ב-Coddy

ללמוד Git עם Coddy

להתחיל