ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git] Git Submodule(์„œ๋ธŒ๋ชจ๋“ˆ) ์ด๋ž€?
    Git 2021. 2. 3. 17:33
    ๋ฐ˜์‘ํ˜•

    Submodule

    • Git์˜ ์„œ๋ธŒ๋ชจ๋“ˆ์€ Git ์ €์žฅ์†Œ์— ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ Git ์ €์žฅ์†Œ๋ฅผ ํ•˜๋‚˜์˜ ๋””๋ ‰ํ† ๋ฆฌ์— cloneํ•˜๋Š” ๊ฒƒ์ด ์„œ๋ธŒ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค.

    • ์„œ๋ธŒ๋ชจ๋“ˆ์— ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋‚ด Git ์ €์žฅ์†Œ์— ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋„ฃ๊ธฐ ๋•Œ๋ฌธ์— ๋…๋ฆฝ์ ์œผ๋กœ ์ปค๋ฐ‹์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


    Submodule ์‚ฌ์šฉํ•˜๊ธฐ

    JNI ์‹ค์Šต ์ฝ”๋“œ๋ฅผ ๋‚ด ์›๊ฒฉ ์ €์žฅ์†Œ(Github)์— ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค.
    ์ด ์›๊ฒฉ ์ €์žฅ์†Œ์— ์ƒˆ๋กœ์šด Git ์ €์žฅ์†Œ๋ฅผ ์„œ๋ธŒ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋””๋ ‰ํ† ๋ฆฌ์— ๋„ฃ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


    ๋จผ์ € ์„œ๋ธŒ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ช…๋ น์œผ๋กœ git submodule add <์ €์žฅ์†Œ URL> ์ž…๋‹ˆ๋‹ค.


    ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ ๊ฒฐ๊ณผ .gitmodules์™€ ์„œ๋ธŒ๋ชจ๋“ˆ์ธ Design-Pattern-to-Java ๊ฐ€ ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ์ด .gitmodules ํŒŒ์ผ์€ ์„œ๋ธŒ ๋””๋ ‰ํ† ๋ฆฌ๋ช…๊ณผ ์„œ๋ธŒ๋ชจ๋“ˆ์˜ URL์˜ ๋งคํ•‘ ์ •๋ณด๋ฅผ ๋‹ด์€ ์„ค์ •ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.


    ์„œ๋ธŒ๋ชจ๋“ˆ ๊ฐฏ์ˆ˜๋งŒํผ ์ด ํ•ญ๋ชฉ์ด ์ƒ๊ธฐ๊ณ , .gitignore ํŒŒ์ผ์ฒ˜๋Ÿผ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


    git status๋ฅผ ํ™•์ธํ•ด๋ณธ ๊ฒฐ๊ณผ ๋ฐฉ๊ธˆ ์–ธ๊ธ‰ํ–ˆ๋˜ ๋‘ ๊ฐ€์ง€์˜ ํŒŒ์ผ๋“ค์ด ์Šคํ…Œ์ด์ง• ์‚ฌํƒœ๊ฐ€ ๋œ ๊ฒƒ์„ ํ™•์ธํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    ์ž์„ธํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด์„œ git diff --staged ์„œ๋ธŒ๋ชจ๋“ˆ๋ช… ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์˜€์Šต๋‹ˆ๋‹ค.


    ๋‚ด์šฉ์—์„œ๋„ ๋‚˜์™”๋“ฏ์ด Git์€ Design-Pattern-to-Java ๋””๋ ‰ํ† ๋ฆฌ ์ž์ฒด๋ฅผ ์„œ๋ธŒ๋ชจ๋“ˆ๋กœ ์ทจ๊ธ‰ํ•˜์—ฌ์„œ ๋ชจ๋“ˆ ๋‚ด์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    ์ฆ‰, ์„œ๋ธŒ๋ชจ๋“ˆ ์ž์ฒด๋ฅผ ํŠน๋ณ„ํ•œ ์ปค๋ฐ‹์œผ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.


    ์ดํ›„ ์„œ๋ธŒ๋ชจ๋“ˆ์„ ์ปค๋ฐ‹ํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

    Design-Pattern-to-Java ์„œ๋ธŒ๋ชจ๋“ˆ์ด ์ปค๋ฐ‹๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


    Submodule ํฌํ•จ๋œ ํ”„๋กœ์ ํŠธ Clone

    ๋จผ์ € ์›๊ฒฉ์ €์žฅ์†Œ์— ์žˆ๋Š” ์†Œ์Šค์ฝ”๋“œ๋ฅผ clone ํ•ฉ๋‹ˆ๋‹ค.


    ์ •์ƒ์ ์œผ๋กœ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ฐ›์•„์„œ .gitmodules์™€ Design-Pattern-to-Java ํด๋”๊ฐ€ ์ƒ๊ธด ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

    ํ•˜์ง€๋งŒ ์„œ๋ธŒ๋ชจ๋“ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๊ฐ€์„œ ํŒŒ์ผ๋“ค์„ ํ™•์ธํ•ด๋ณด๋ฉด ๋นˆ ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค.


    ์„œ๋ธŒ๋ชจ๋“ˆ์ด ์™„์ „ํžˆ Clone ๊ณผ์ •์„ ๋๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    git submodule init : ์„œ๋ธŒ๋ชจ๋“ˆ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋กœ์ปฌ ํ™˜๊ฒฝ์„ค์ • ํŒŒ์ผ ์ค€๋น„, ์ดˆ๊ธฐํ™”
    git submodule update : ์„œ๋ธŒ๋ชจ๋“ˆ์˜ ์›๊ฒฉ ์ €์žฅ์†Œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.



    ์„œ๋ธŒ๋ชจ๋“ˆ์— ์ •์ƒ์ ์œผ๋กœ ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ๋ฐ›์•„์ง€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
    git clone --recurse-submodules <์ €์žฅ์†Œ URL> : ์„œ๋ธŒ๋ชจ๋“ˆ์ด ํฌํ•จ๋œ ํ”„๋กœ์ ํŠธ๋ฅผ cloneํ•  ๋•Œ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์„œ๋ธŒ๋ชจ๋“ˆ๊นŒ์ง€ ํ•œ๊บผ๋ฒˆ์— ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋ฐ˜์‘ํ˜•

    'Git' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

    [Git] Remote Repository ๋ช…๋ น์–ด  (0) 2021.05.30
    [Git] Repo ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ  (0) 2021.02.12
    [Git] SSH Key ์ƒ์„ฑ ๋ฐ ์„ค์ •  (0) 2020.12.11
Designed by Tistory.