git commit -m "Blog Posting #2๐ซก"
๊ฐ๋ฐ์ํ์ ์ ํ์ ๋๊ตฌ
Git๊ณผ Github๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ก์ปฌ ์ ์ฅ์์์ ์์ํ๊ฑฐ๋, ์๊ฒฉ ์ ์ฅ์์์ ์์ํ๋ ๊ฒ์ด๋ค. ์ด ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์.
Local Repository์์ ์์: ์ด๊ธฐ ์์
๋ก์ปฌ์์ ํ๋ก์ ํธ๋ฅผ ์์ํ ํ, ์ด๋ฅผ ์๊ฒฉ ์ ์ฅ์(GitHub)์ ์ ๋ก๋ํ๋ ๊ณผ์ ์ด๋ค. ๋ก์ปฌ์์ ์ง์ Git ์ ์ฅ์๋ฅผ ์ด๊ธฐํํ๊ณ , ์ดํ ์๊ฒฉ ์ ์ฅ์์ ์ฐ๊ฒฐํ์ฌ ์์ ์ ๊ด๋ฆฌํ ์ ์๋ค.
์๋์ ๊ฐ์ด ์ํํ๋ค.
1. ๋ก์ปฌ์์ Git ์ ์ฅ์ ์ด๊ธฐํ
- `git init`:ํ์ฌ ๋ด ๋๋ ํ ๋ฆฌ๋ฅผ Git์ผ๋ก ๊ด๋ฆฌํ๊ฒ ๋ค๋ ์ ์ธ = `.git` ๋๋ ํ ๋ฆฌ ์์ฑ
git init
2. ๊ธฐ๋ณธ ๋ธ๋์น ์ด๋ฆ ๋ณ๊ฒฝ
- ์ด๊ธฐํ๋ Git ์ ์ฅ์์์ ๊ธฐ๋ณธ ๋ธ๋์น์ ์ด๋ฆ์ `main`์ผ๋ก ๋ณ๊ฒฝํ๋ค.
git branch -M main
`master`๊ฐ ์๋ `main`์ด๋ผ๋ ๋น์ฐจ๋ณ์ ์ธ ๋ช ์นญ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
3. ์๊ฒฉ ์ ์ฅ์ ์ถ๊ฐ ๋ฐ ์ฐ๊ฒฐ
- GitHub์์ ์ ์ ์ฅ์๋ฅผ ์์ฑํ ํ, ๋ก์ปฌ ์ ์ฅ์์ ์ฐ๊ฒฐํ๋ค.
git remote add orgin git@github.com:SangHyun-e/git-tutorial.git
`origin`์ ์๊ฒฉ ์ ์ฅ์์ ๋ณ์นญ → ์ดํ ์ด ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ์๊ฒฉ์ ์ฅ์์ ์ํตํ๊ฒ ๋๋ค.
4. ๋ก์ปฌ ์ปค๋ฐ์ ์๊ฒฉ ์ ์ฅ์๋ก ํธ์
- ๋ก์ปฌ์์์ ์์ ์ ์๊ฒฉ์ ์ฅ์์ ์ ๋ก๋(Github Repository ํ๊ฒ์ ๋ฐ์ฌ = Push)
git push -u origin main
๋ก์ปฌ `main`๋ธ๋์น๋ฅผ ์๊ฒฉ `main` ๋ธ๋์น์ ์ฐ๊ฒฐํ๊ณ ์ฒซ ๋ฒ์งธ ํธ์๋ฅผ ์คํํ๋ค.
์๊ฒฉ ์ ์ฅ์์์ ์์: ๊ฐ์ ธ์ค๊ธฐ - ํ์ , ํ์ ์์ ์ผ๋ฐ์ ์ธ ๋ฐฉ์
์ด๋ ์๊ฒฉ ์ ์ฅ์(Github)์์ ํ๋ก์ ํธ๋ฅผ ๋จผ์ ์์ฑํ ํ, ์ด๋ฅผ ๋ก์ปฌ๋ก ํด๋ก (clone)ํ์ฌ ์์ํ๋ ๋ฐฉ์์ด๋ค.
ํ์ ์ด๋ ํ์ ์์ ๋ง์ด ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ์ด๋ฏธ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์์ ํด๋ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ ์ด์ด์ ๊ฐ๋ฐํ ์ ์๋ค.
์๋์ ๊ฐ์ด ์ํํ๋ค.
1. GitHub์์ ์ ์ ์ฅ์ ์์ฑ
- GitHub์์ ์๋ก์ด ํ๋ก์ ํธ ์ ์ฅ์๋ฅผ ์์ฑํ๋ค.
- ์ ์ฅ์๋ฅผ ์์ฑํ ๋, ์ต์ ์ ๋ฐ๋ผ `README`ํ์ผ์ด๋ `.gitignore`ํ์ผ ๋ฑ ์ด๊ธฐํ ๊ฐ๋ฅ.
2. ๋ก์ปฌ์์ ์๊ฒฉ ์ ์ฅ์ ํด๋ก
git clone git@github.com:SangHyun-e/git-tutorial.git
์๊ฒฉ ์ ์ฅ์์ ๋ด์ฉ์ ๋ก์ปฌ๋ก ๋ณต์ ํ์ฌ, ํ๋ก์ ํธ๋ฅผ ์์ํ ์ ์๋ ํ๊ฒฝ์ ๋ง๋ค์ด์ค๋ค.
Remote ์ฃผ์ ๊ด๋ฆฌ ๋ฐ Local/Remote Branch ๊ด๋ฆฌ
Git์์ ๋ชจ๋ ๊ฒ์ ํฌ๊ฒ Local(๋ก์ปฌ, Git)๊ณผ Remote(์๊ฒฉ, Github)๋ก ๋๋ ์๊ฐํ๋ฉด ๋๋ค.
- Remote(Github): ์ฌ๋ฌ ์ฌ๋๋ค์ ์์ ๋ค์ด ๋ชจ๋ ๋ชจ์ฌ์์.
- Local(Git): ๋ด ์์
์ด ๋ชจ์ฌ์๊ณ , Remote(Github)์ ์๋ ๋ค๋ฅธ ๊ฐ๋ฐ์์ ์ฐธ์กฐ(Ref)๋ ๊ฐ์ง๊ณ ์๋ค.
- Remote ์ฃผ์๊ด๋ฆฌ: ์ฝ๋๋ฅผ ์ด๋์์ ๋ค์ด๋ก๋ํ ์ง(fetch) / ์ฝ๋๋ฅผ ์ด๋๋ก ์ ๋ก๋ํ ์ง(push)
- Branch ๊ด๋ฆฌ: Local Branch CRUD / Remote Branch CRUD - ๋ชจ๋ ๋ธ๋์น ๋ก์ปฌ์ ๊ด๋ฆฌ ๊ฐ๋ฅ
Remote ์ฃผ์ ๊ด๋ฆฌ - CRUD
1. Remote ์กฐํ
git remote -v
ํ์ฌ ๋ก์ปฌ ์ ์ฅ์์ ์ฐ๊ฒฐ๋ ์๊ฒฉ ์ ์ฅ์์ ์ ๋ณด๋ฅผ ์กฐํํ ์ ์๋ค.
- `-v = verbose: ์์ธ์ถ๋ ฅ` (์ด์ verbose: ๋ง๋ง์, ์์ธํ, ๊ตฌ๊ตฌ์ ์ )
2. Remote ์ถ๊ฐ
git remote add orgin git@github.com:SangHyun-e/git-tutorial.git
์๊ฒฉ ์ ์ฅ์๋ฅผ ์ถ๊ฐํ ์ ์๋ค. `origin`์ด๋ผ๋ ๋ณ์นญ์ผ๋ก ์ ์ฅ์๋ฅผ ๋ฑ๋กํ๋ค.
- `origin`: Alias
3. Remote ์์
git remote set-url origin git@github.com:SangHyun-e/git-tutorial.git
๊ธฐ์กด์ ๋ฑ๋ก๋ ์๊ฒฉ ์ ์ฅ์์ URL์ ๋ณ๊ฒฝํ ์ ์๋ค.
- ์ ์ฒด ๋ณ๊ฒฝ: `git remote set-url origin git@github.com:SangHyun-e/git-tutorial.git`
- ์ผ๋ถ ๋ณ๊ฒฝ: `git remote set-url --push origin git@github.com:SangHyun-e/git-tutorial.git`
4. Remote ์ญ์
git remote remove origin
๋ฑ๋ก๋ ์๊ฒฉ ์ ์ฅ์๋ฅผ ์ญ์ ํ๋ค.
Branch ๊ด๋ฆฌ
๋ก์ปฌ์์์ ๋ช ๋ น์ด๋ฅผ ํตํด ์๊ฒฉ Remote ๋ธ๋์น & ๋ก์ปฌ Lopcal ๋ธ๋์น๋ฅผ ๋ชจ๋ ๊ด๋ฆฌ ํ ์ ์๋ค.
Git์์๋ ๊ธฐ๋ฅ๋ณ๋ก ํน์ ๊ฐ๋ฐํ๋ ๊ฐ๋ฐ์๋ณ๋ก ๋ค์์ Branch๋ก ๊ตฌ์ฑํ ์ ์๋ค.
- Remote์์ Branch๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ: `git fecth -p` → `-p = prune`
- Remote์์ ์ญ์ ๋ ๋ธ๋์น๋ Local ๋ธ๋์น์์๋ ์ง์์ผํจ.
Branch ๊ด๋ฆฌ ๋ช ๋ น์ด - CRUD
1. Branch ์์ฑ
git checkout -b new-branch-name
์๋ก์ด ๋ธ๋์น๋ฅผ ์์ฑํ๊ณ ๊ทธ ๋ธ๋์น๋ก ์ด๋ํ๋ค.
- ๊ธฐ์ค์ด ๋๋ ๋ธ๋์น์์ ์๋ก์ด ๋ธ๋์น๋ฅผ ์์ฑํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ ๋ช ๋ น์ด๋ฅผ ์ด๋ ๋ธ๋์น์์ ์ ๋ ฅํ๋๊ฐ ์ค์ํ๋ค.
2. Branch ์ญ์
git branch --delete branch-name
git branch -D branch-name
๋ก์ปฌ ๋ธ๋์น๋ฅผ ์ญ์ ํ๋ค.
- `--delete`: ์ญ์ (ํ์ฌ ๋ธ๋์น๊ฐ ์ด๋์๋ ๋จธ์ง๋์ง ๋ชปํ๋ฐ๋ฉด ๊ฒฝ๊ณ ์ ํจ๊ป ์ญ์ ๋์ง ์์)
- `-D`: ๊ฐ์ ์ญ์
3. ์๊ฒฉ Branch ์ญ์
git push origin --delete branch-name
์๊ฒฉ ์ ์ฅ์์ ๋ธ๋์น๋ฅผ ์ญ์ ํ๋ค.
- `origin`: ์๊ฒฉ ์ฃผ์(Github Repository ์ฃผ์)์ ๋ํ Alias
- `branch-name`: ์ญ์ ํ๊ณ ์ํ๋ ๋ธ๋์น๋ช
4. Branch ์กฐํ
git branch -a
๋ก์ปฌ ๋ฐ ์๊ฒฉ ์ ์ฅ์์ ๋ชจ๋ ๋ธ๋์น๋ฅผ ์กฐํํ ์ ์๋ค.
- `git branch -r` → `-r = remote`: ์๊ฒฉ Remote Branch ์กฐํ
- `git branch -l` → `-l = lcoal`:๋ก์ปฌ Local Branch ์กฐํ
- `git branch -a` → `-a = all`: ์๊ฒฉ ๋ก์ปฌ Branch ๋ชจ๋ ์กฐํ
Branch์ ๋ํด ๋ ์์ธํ ์๊ณ ์ถ๋ค๋ฉด Git ๊ณต์๋ฌธ์ (์๋๋งํฌ)๋ฅผ ์ฐธ๊ณ ํ์ !
์ด๋ฒ ํฌ์คํ ์์ Git์ ์์ํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ (๋ก์ปฌ์์ ์์, ์๊ฒฉ์์ ์์)๊ณผ Remote ์ฃผ์๊ด๋ฆฌ, Local๊ณผ Remote์ Branch ๊ด๋ฆฌ์ ๋ํด ์์๋ณด์๋ค.
๋ค์ ํฌ์คํ ์์ Local Branch์ Remote Branch๋ฅผ ๋๊ธฐํํ๋ ๋ฐฉ๋ฒ๊ณผ ๋๊ธฐํ์ Conflict(์ถฉ๋) ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณผ ์์ ์ด๋ค.
โน๏ธ์ฐธ๊ณ
[ASAC 6๊ธฐ ๊ฐ์์๋ฃ]
Git ๊ณต์๋ฌธ์ https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%B8%8C%EB%9E%9C%EC%B9%98%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
'๐ปDEV-STUDY > Git' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Git & GitHub #6 - ์ค๋ฌด์์์ Git ๋ธ๋์น ์ ๋ต ๋ฐ Zone ๊ตฌ๋ณ (0) | 2024.09.01 |
---|---|
Git & GitHub #5 - Git ๊ตฌ์กฐ ๋ฐ ๋ช ๋ น์ด & Git ํธ๋ฌ๋ธ ์ํ (2) | 2024.09.01 |
Git & GitHub #4 - Conflict ์ถฉ๋ ํด๊ฒฐ (0) | 2024.09.01 |
Git & GitHub #3 - Local Branch์์ Remote Branch ๋๊ธฐํ (4) | 2024.09.01 |
Git & GitHub #1 - ๊ฐ๋ ๋ฐ SSH ํค ์์ฑ (0) | 2024.08.31 |