[Git] submodule

[์›๋ณธ ๋งํฌ]

git submodule์€ git ์ฐจ์›์—์„œ ์ง€์›ํ•˜๋Š” ์ž์ฒด์ ์ธ ๋ชจ๋“ˆ์‹œ์Šคํ…œ์ด๋‹ค.
ํ•˜๋‚˜์˜ git ํ”„๋กœ์ ํŠธ์—, ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ํฌํ•จ์‹œํ‚ค๊ณ  clone๋ฐ›์•„์™€์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค.

๊ทผ๋ฐ ์ด๊ฒŒ ์“ฐ๋‹ค๋ณด๋ฉด ํžˆ์Šคํ† ๋ฆฌ ๊ด€๋ฆฌ๋„ ์‹ ๊ฒฝ์„ ์จ์•ผํ•˜๊ณ .. ์—ฌ๋Ÿฌ๋ชจ๋กœ ํ”ผ๊ณคํ•œ๊ฒŒ ๋งŽ์•„์„œ ํ˜ธ๋ถˆํ˜ธ๊ฐ€ ๊ฐˆ๋ฆฐ๋‹ค.

๊ทธ๋ž˜๋„ ํ•œ์ •๋œ ์ƒํ™ฉ์—์„œ๋Š” ๋Œ€์ฒดํ’ˆ์ด ์—†์–ด์„œ ์ข…์ข… ์จ์•ผํ• ์ผ์ด ์žˆ๋‹ค.




์„œ๋ธŒ๋ชจ๋“ˆ ๋“ฑ๋ก

ํ”„๋กœ์ ํŠธ์— ์ƒˆ๋กœ ๋ชจ๋“ˆ์„ ๋“ฑ๋กํ•˜๋ ค๋ฉด, submodule add ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ๋‹ค.

git submodule add ๋งํฌ

๋งŒ์•ฝ llvm ํ”„๋กœ์ ํŠธ๋ฅผ ๋ชจ๋“ˆ๋กœ์„œ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ๊ทธ github ๋งํฌ๋ฅผ ๋ฐ•์•„์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿผ clone๋„ ๋ฐ›์•„์ง€๊ณ 


์ž์ฒด ๋ชจ๋“ˆ ๊ด€๋ฆฌ ํŒŒ์ผ์ธ .gitmodules๋„ ์ถ”๊ฐ€๋˜์—ˆ์„ ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ์ถ”๊ฐ€๋œ ๋ชจ๋“ˆ์€ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ž์ฒด์— ์ฝ”๋“œ๊ฐ€ ๋‹ค ์ถ”๊ฐ€๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ

๋งํฌ๊ฐ€ ๋œ๋‹ค.




submodule ์žฌ์„ค์น˜

git ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ clone๋ฐ›์•˜๋‹ค๋ฉด, ์„œ๋ธŒ๋ชจ๋“ˆ๋“ค์€ ๊ทธ๋ƒฅ ํ…… ๋น„์–ด์žˆ์„ ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด์ค„๋•Œ๋งˆ๋‹ค .gitmodules๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ submodule์„ ๋‹ค์‹œ ๋‚ด๋ ค๋ฐ›์•„์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ๋Ÿด๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด init ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๋œ๋‹ค.




submodule ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ฐ˜์˜

์›๋ณธ ๋ชจ๋“ˆ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ–ˆ๊ณ , ๊ทธ๊ฑธ ์ง€๊ธˆ ๋‹ค์‹œ ๋ฐ˜์˜ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด update ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด์ค€๋‹ค.

๊ทธ๋Ÿผ ์ž๋™์œผ๋กœ ์ตœ์‹  ์ƒํƒœ๋กœ pull์„ ๋ฐ›์•„์ค„ ๊ฒƒ์ด๋‹ค.




submodule์˜ ์žฌ๊ท€์  ์ฐธ์กฐ

์„œ๋ธŒ๋ชจ๋“ˆ์— ๋˜ ์„œ๋ธŒ๋ชจ๋“ˆ์ด ์žˆ์„ ๊ฒฝ์šฐ์—๋Š” ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผํ• ๊นŒ?
๋‹คํ–‰ํžˆ ์ „์šฉ ๋ช…๋ น์„ ์ œ๊ณตํ•œ๋‹ค.

init์„ ์žฌ๊ท€์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ด๋ ‡๊ฒŒ ๋‚ ๋ฆฌ๋ฉด ๋˜๊ณ 

git submodule update --init --recursive

update๋งŒ ํ•˜๋Š”๊ฑฐ๋ฉด ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋œ๋‹ค.

git submodule update --recursive


์ฐธ์กฐ
https://stackoverflow.com/questions/1030169/pull-latest-changes-for-all-git-submodules