gitaarik/git_submodules.md (Magyar)

0 Comments

miért submodules?

a Git-ben hozzáadhat egy almodulot egy tárolóhoz. Ez alapvetően arepository ágyazva a fő tároló. Ez nagyon lehethasznos. A submodules használatának néhány előnye:

  • a kódot különböző tárolókba választhatja.

    hasznos, ha van egy codebase nagy alkatrészek, akkor lehet, hogy acomponent egy almodul. Így lesz egy tisztább Git log (elkötelezi specifikusak egy bizonyos komponens).,

  • az almodul több tárolóhoz is hozzáadható.

    hasznos, ha több tárolója van, amelyek ugyanazt osztják megkomponensek. Ezzel a megközelítéssel könnyen frissítheti ezeketkomponensek az összes tárolóban, amelyek almodulként adták hozzá őket.Ez sokkal közvetlenebb, mint másolni-beilleszteni a kódot therepositories.

alapjai

Ha hozzá egy almodul a Git, akkor nem adja hozzá a kódot a thesubmodule a fő tároló, csak hozzá információt thesubmodule, hogy hozzáadódik a fő tároló., Ez az információleírja, amely elkövetni a submodule mutat. Ily módon, thesubmodule “s code won” t automatikusan frissül, ha az almodul ” srepository frissül. Ez azért jó, mert a kód nem biztos, hogy a submodul legújabb commit-jével működik, megakadályozza a unexpectedbehaviour-t.,

Hozzáadása részmodult

hozzáadhat egy részmodult, hogy egy adattár, mint ez:

az alapértelmezett konfigurációs, ezt ellenőrizni fogja a kódot aawesome_submodule.git adattár, hogy a path_to_awesome_submodulekönyvtárat, majd adjunk információt a fő adattár akarja ezt a részmodult, amely tartalmazza a elkövetni a részmodult mutat,amely a jelenlegi elkövetni a default ág (általában amaster ág) abban az időben ez a parancs végrehajtódik.,

a művelet után, ha git status két fájlt lát a Changes to be committed lista: a .gitmodules fájl és az almodul elérési útja. Amikor elkötelezi magát, majd nyomja ezeket a fájlokat elkövetni / pushthe submodule az origin.

szerzés a submodule ” s code

Ha egy új almodul által létrehozott egy személy, a többi ember theteam kell kezdeményezni ezt almodul. Először meg kell szereznie ainformációkat a submodulról, ezt egy normálgit pulllekérdezi., Ha vannak új submodules látni fogja a kimenetgit pull. Ezután meg kell kezdeményezni őket:

Ez húzza ki az összes kódot az almodulból, majd helyezze azt a könyvtárba, amelyre konfigurálva van.

ha klónozott egy adattárat, amely almodulokat használ, akkor ezt a parancsot is futtatnia kell, hogy megkapja az almodul kódját. Ezt nem a git clonevégzi.

A frissítések lenyomása a

almodulban az almodul csak egy külön tároló., Ha azt szeretnénk, hogy változásokhogy, meg kell, hogy a változások ebben a tárolóban, majd nyomja őket, mintegy rendszeres Git adattár (csak végre a GIT parancsok thesubmodule könyvtár). Azonban azt is meg kell, hogy a mainrepository tudja, hogy frissítette a submodule adattár, és makeit használja a legújabb elkövetni a tároló az almodul. Mert ha egy almodulban új elköteleződést hajt végre,akkor a fő tároló még mindig a régi elkötelezettségre mutat.,

tehát, ha ezeket a változtatásokat a fő tárolóban is szeretné, akkormeg kell mondania a fő tárolónak, hogy használja a thesubmodule legújabb elkötelezettségét. Hogy csinálod ezt?

tehát változtattál a submodule adattárában, és elkötelezted magad az adattárában. Ha most agit status a főrepository-ban, akkor látni fogja, hogy az almodul aChanges not staged for commit listában található, mögötte pedig a(modified content) szöveg található.Ez azt jelenti,hogy az almodul kódját az adifferent commit-en ellenőrizzük, mint amire a fő tároló mutat., Take a fő tároló pont erre az új elkövetni, csak addez a változás git add majd elkövetni, majd nyomja meg.

az almodulokat naprakészen tartva

ha valaki frissített egy almodulot, a többi csapattagnak frissítenie kell az almoduljaik kódját. Ez nem automatikusan történik agit pull, mert a git pull csak lekéri fel, hogy a részmodult mutat anothercommit, de nem”t frissíteni a részmodult”s kódot., Az almodulák kódjának frissítéséhez futtassa:

mi történik, ha nem futtatja ezt a parancsot?

Ha nem futtatja ezt a parancsot, a kód a submodule checkedout egy régi elkövetni. Ha nemgit status látni fogja thesubmodule aChanges not staged for commit lista a szöveg(modified content) mögötte. Ez nem azért van, mert megváltoztatta thesubmodule kódját, hanem azért, mert a kódot kivették a differentcommit. Tehát Git látja ezt a változást, de valójában tecsak nem frissíti a submodule kódját., Tehát, ha dolgozik aszubmodulokat, ne felejtsük el, hogy tartsa a submodules up-to-date.

így mindenki számára könnyebb

néha bosszantó, ha elfelejti elindítani és frissíteni az önétszubmodulokat. Szerencsére van néhány trükk, hogy megkönnyítse:

Ez frissíti az almodulokat, és ha még nem kezdeményezik őket, akkor elindítják őket.

submodules is lehet A submodules belsejében., Ebben az esetben a”llwant frissíteni/kezdeményezni a submodules rekurzív:

Ez egy csomó gépelni, így lehet, hogy egy alias:

most, amikor végre git update, akkor végre egy

div id=”e7fdd801b8″>

anda git submodule update --init --recursive, így frissíti a projekt összes kódját.


Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük