-
[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