์๋ ํ์ธ์? ์ด์ ์ ์ด์ํ๋ ๋ธ๋ก๊ทธ์ ์์ค์ฝ๋๋ฅผ ๊ด๋ฆฌํ๋ GitHub๊ฐ ๋ฐ๋ก ์์ต๋๋ค.
โ Git - subtree
์๋ ํ์ธ์, ์ด๋ฒ์ ์ ๋ฆฌํ ๋ด์ฉ์ git์์ subtree๋ฅผ ํ์ฉํ ๋ ํฌ์งํ ๋ฆฌ ์์ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์ ์ฅํ๊ธฐ ์ ๋๋ค.
์ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ค์ด๊ฐ๋ฉด ์๋์ ๊ฐ์ด ๋์ด์์ต๋๋ค.
์ ์ฌ์ง์์ ๋ณด์๋ฉด ๋ ํฌ์งํ ๋ฆฌ ๋ด๋ถ์ ๋ค์๊ณผ ๊ฐ์ด ์ธ ๋ ํฌ์งํ ๋ฆฌ๊ฐ ์ ์ฅ๋์ด ์์ต๋๋ค.
- fastcampus-java-admin
- inflearn-docker
- inflearn-spring-basic
๋ฐ๋ผ์ ์์ ๊ฐ์ด ํด๋ ์์ ํด๋๋ฅผ ์ ์ฅํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
โ ์ค๋น๋ฌผ
์ฐ์ ๋ค์๊ณผ ๊ฐ์ด ๋ ๊ฐ์ ๋ ํฌ์งํ ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค
- ๋ถ๋ชจ Repository
- ์์ Repository
์ฌ๊ธฐ์ ๋ถ๋ชจ Repository๋ root(GitHub ํ๋กํ์์ ๋ณด์ฌ์ง๋ ๋ ํฌ์งํ ๋ฆฌ) ์ด๊ณ ,
์์ Repository๋ ๋ถ๋ชจ Repository ๋ด๋ถ์ ๋ฃ์ ๋ ํฌ์งํ ๋ฆฌ ์
๋๋ค.
๋ํ git ์ ์ค์นํ์
์ผ ํฉ๋๋ค.
โ subtree
์ ๋ ์์ ๊ฐ์ด parent ๋ ํฌ์งํ ๋ฆฌ 1๊ฐ์ child ๋ ํฌ์งํ ๋ฆฌ 2๊ฐ๋ฅผ ์ค๋นํ์ต๋๋ค.
์ด์ parent-repo ๋ด๋ถ์ child-repo1 ๊ณผ child-repo2 ๋ฅผ ๋ฃ์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
parent-repo ๋ก ๊ฐ์ clone์ ํตํด ํด๋๋ฅผ ๋ฐ์ต๋๋ค.
์ ๋ค๋ชจ ๋ฐ์ค๋ฅผ ๋๋ฅด๋ฉด repository์ url์ด ๋ณต์ฌ๊ฐ ๋ฉ๋๋ค.
๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ฐ๊ณ ๊ฒฝ๋ก๋ฅผ ์ด๋ํฉ๋๋ค.
git init ๋ช
๋ น์ด์ git clone ๋ช
๋ น์ด๋ฅผ ํตํด ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ฐ๊ณ , cd ๋ช
๋ น์ด๋ฅผ ํตํด ํด๋๋ฅผ ์ด๋ํฉ๋๋ค.
child์ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ remote๋ก ๋ฑ๋กํฉ๋๋ค.
$ git remote add (remote name) (git ์ฃผ์)
- remote name์๋ ์ค์ ํ name์ด remote์ name์ด ๋ฉ๋๋ค.
- git ์ฃผ์์๋ child ๋ ํฌ์งํ ๋ฆฌ์ url์ ๋ณต์ฌํฉ๋๋ค.(์์์ parent์ url์ ๋ณต์ฌํ ๋ฐฉ์์ผ๋ก ํ์๋ฉด ๋ฉ๋๋ค.)
- $ git remote -v ๋ช
๋ น์ด๋ฅผ ํตํด remote๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
git subtree ๋ช ๋ น์ด๋ฅผ ํตํด ๋ฑ๋กํฉ๋๋ค.
$ git subtree add --prefix=<parent ๋ ํฌ์งํ ๋ฆฌ์ ์ ์ฅํ ํด๋๋ช > <child์ remote ์ด๋ฆ> <์๊ฒฉ branch name>
- parent ๋ ํฌ์งํ ๋ฆฌ์ ์ ์ฅํ ํด๋๋ช : ์ฌ๊ธฐ์ ์ค์ ํ name์ผ๋ก repository์ ํด๋๋ช ์ด ์ง์ ๋ฉ๋๋ค.
- child์ remote ์ด๋ฆ: ์์์ ์ค์ ํ child์ remote๋ฅผ ์ง์ ํ์๋ฉด ๋ฉ๋๋ค.
- child1, child2
- ์๊ฒฉ branch name: parent ๋ ํฌ์งํ ๋ฆฌ์ ๋ธ๋์น๋ช ์ ์์ฑํ์๋ฉด ๋ฉ๋๋ค.
$ git push
- ์ ๊ณผ์ ์ด ๋๋ ํ push๋ฅผ ํ๊ฒ ๋๋ฉด parent์ repository์ child1, child2 repository๊ฐ ์์ฑ๋ฉ๋๋ค.
์ถ๊ฐ๋ก ์ด๋ ๊ฒ ์์ ํ์ ํ child1, child2 ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์ญ์ ํ๋๋ผ๋ commit ๋ด์ญ์ด ์ ์ง๋ฉ๋๋ค!!
'Git & GitHub' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Git/GitHub] - GitHub์ ์๋ชป ์ฌ๋ผ๊ฐ ํ์ผ ์ ๊ฑฐํ๊ธฐ(.gitignore) (2) | 2021.07.17 |
---|---|
GitHub(๊นํ๋ธ) - ๋๋ ํ ๋ฆฌ์ ํ์ดํ ํ์(ํด๋ ํด๋ฆญ์ด ์๋ ๋) (12) | 2021.06.15 |
Git pull ๋ฐ์ ๋ด์ญ rollback(๋ณต๊ตฌ) ํ๊ธฐ (0) | 2021.04.19 |
[Git] - git branch ๋ช ๋ น์ด ์ ๋ฆฌ (0) | 2021.04.11 |
[Git / GitHub] - ๋ก๊ทธ์ธ ์์ด push ํ๊ธฐ(SSH Key ์ค์ ) (0) | 2021.03.16 |
๋๊ธ