git commit -m "Blog Posting๐ซก"
๊ฐ๋ฐ์ํ์ ์ ํ์ ๋๊ตฌ
Git & GitHub๋ฅผ ํ์ฉํ ๋ก์ปฌ ๋ฐ ์ค์ ์ฝ๋ ๊ด๋ฆฌ
์ํํธ์จ์ด ๊ฐ๋ฐ์์ ์ฝ๋ ๊ด๋ฆฌ๋ ํ์๋ค. ํนํ, ํ์ ํ๋ก์ ํธ์์ ๊ฐ ๊ฐ๋ฐ์์ ์ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ถฉ๋์ ํผํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํ๋ค. ์ด๋ฅผ ์ํด Git๊ณผ Github๋ ๊ฐ๋ฐ์์๊ฒ๋ ์์ด์ ์๋ ํ์์ ์ธ ๋๊ตฌ์ด๋ค.
Git & Github
์๋ฅผ๋ค์ด ๊ณผ์ ๋ฅผ ์ ์ถํ ๋ ๋ง์ ์ ์ถํ๋ ค๊ณ ํ๋ฉด ์์ ์ฌํญ๋ค์ด ๋ณด์ด๊ณ , ์์ ํ๋ค ๋ง์น๋ฉด ์๋๋ ๋ฐฑ์ ์ ๋ง๋ค์ด ๋๊ณ ์ด๋ฐ ์ํฉ์ ๋ฐ๋ณตํ๋ฉด ์๋์ฒ๋ผ ์๋ง์ ํ์ผ์ด ๋ง๋ค์ด์ง๋ค.
์ ์ด๋ฏธ์ง์ฒ๋ผ ํ์ผ์ ์ฌ๋ฌ๊ฐ๋ง๋ค๋ฉด ํ์ผ์ด ๋ง์์ง๊ณ ์ง์ ๋ถํด์ง๋ฉฐ ๊ด๋ฆฌํ๊ธฐ๊ฐ ์ด๋ ค์์ง๋ค.
๋ง์ฝ ๊ฐ๋ฐ์์ญ์์ ์ด์ฒ๋ผ ์ฝ๋์ ํ์ผ์ ๊ด๋ฆฌํ๋ฉด ์ฉ๋์ ๋๋์์ด ๋ง์์ง ๋ฟ๋๋ฌ ๋ฐฉ๋ํ ์ฝ๋์์ ์ด๋ค ๋ถ๋ถ์ ์ฐพ์์ง๋ ๋๋์ฑ ์ด๋ ค์์ง ๊ฒ์ด๋ค. ์ด๋ฅผ ๊ทน๋ณตํ ์ ์๋ ๋ฐฉ๋ฒ์ด Git์ด๋ค.
Git์ ๋ถ์ฐํ ๋ฒ์ ๊ด๋ฆฌ ์์คํ (Version Control System)์ด๋ฉฐ ๋น ๋ฅธ ์ํ ์๋์ ์ค์ ์ ๋๋ค.
Git์ ์ด์ฉํ๋ฉด ๋ฒ์ ๊ด๋ฆฌ๊ฐ ์ฌ์์ง๋ค. ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด ์ฆ์ ์ ๋ฐ์ดํธ๊ฐ ํ์์ ์ธ๋ฐ, ํ๋ก์ ํธ๋ฅผ ์ ๋ฐ์ดํธํ ๋๋ง๋ค ๋ฐ๋ก ์ ์ฅํ๋ ๊ฒ์ด ์๋, Git์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
๊ทธ๋ ๋ค๋ฉด GitHub๋ ๋ฌด์์ผ๊น?
Git(๊น)์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ด๊ณ , GitHub(๊นํ๋ธ)๋ Git์ผ๋ก ๊ด๋ฆฌํ๋ ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฆด ์ ์๋ ์ฌ์ดํธ. ์ฆ Git ํ์ผ๋ค์ ์๊ฒฉ์ผ๋ก ์ ์ฅํ๋ ๊ณต๊ฐ์ ์ ๊ณตํ๋ ์๋น์ค์ด๋ค. ํ์ ๊ด๋ฆฌ์ ์ฌ์ฉ๋๋ ๋๊ตฌ๋ก๋ Github๋ฟ๋ง์๋๋ผ Gitlab, Bitbucket, Gerrit ๋ฑ ๋ค์ํ ํด์ด ์กด์ฌํ๋ค.
๋ก์ปฌ ์ฝ๋ ๋ฐ ํ์ ์ ๋ฌธ์ ๊ด๋ฆฌ
- ๋ก์ปฌ ์ฝ๋ ๊ด๋ฆฌ
- ๋ค์ํ ๋ฒ์ : ํ๋์ ์ฝ๋์์ ๋ค์ํ ๊ธฐ๋ฅ์ด๋ ์์ ์ฌํญ ํ ์คํธ
- ํ์คํ ๋ฆฌ ์ถ์ : ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ์ด์ ๋ฒ์ ์ผ๋ก ์ฝ๊ฒ ๋กค๋ฐฑ
- ์ค์ ์ฝ๋ ๊ด๋ฆฌ: ํ๋์ ํ๋ก์ ํธ๋ฅผ ๋ค์์ ์ฌ๋์ด ๊ฐ๋ฐ
- ํ์ ๊ด๋ฆฌ: ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ๋์ผํ ํ์ผ์ ๋์์ ์์ ํ ๋ ๋ฐ์ํ ์ ์๋ ์ถฉ๋ ๋ฐฉ์ง
- ์๊ฒฉ ์ ์ฅ: ๋ก์ปฌ ํ๊ฒฝ์ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ์๊ฒฉ์ ์์ ํ๊ฒ ์ ์ฅ๋ ์ฝ๋๋ฅผ ํ์ฉ ๊ฐ๋ฅ
Git ๊ณผ Git hub ๋ฑ์ฅ
- ์ผ๋ฐ์ ์ธ ๋ฒ์ ๊ด๋ฆฌ: ํ์ผ ๊ธฐ๋ฐ → ์์์ ๋งํ๋ฏ์ด ์ค๋ณต๋ ๋ด์ฉ์ด ๊ณ์ ์์ด๊ธฐ๋๋ฌธ์ ์ฉ๋์ด ๋นํจ์จ์ ์ด๋ค.
- Git ๋ฒ์ ๊ด๋ฆฌ: ๋ณ๊ฒฝ์ฌํญ(Diff) ๊ธฐ๋ฐ์ผ๋ก ๊ด๋ฆฌ๋์ด ์ฉ๋์ด ํจ์จ์ ์ด๋ค.
Git: 2๊ฐ์ง ๋ฐฉ์์ ์์
Git์ ๋ก์ปฌ์์ ์์ํ๋ ๋ฐฉ๋ฒ๊ณผ ๋ฆฌ๋ชจํธ์์ ์์ํ๋ ๋ฐฉ์ ๋๊ฐ์ง๊ฐ ์๋ค.
- Local์์ ์์: ๋ก์ปฌ์์ ์์ ํ, ์๊ฒฉ ์ ์ฅ์(Github)์ Push `git push`
- Remote์์ ์์: Github์์ ์ ์ฅ์๋ฅผ ์์ฑํ ํ, ๋ก์ปฌ๋ก Clone `git Clone`
- Git์ด ํ์ฑํ ๋์ด์๋์ง์ ์ฌ๋ถ๋ `.git` ๋๋ ํ ๋ฆฌ๊ฐ ์์ฑ๋์ด์๋์ง๋ฅผ ํ์ธํ๋ค.
- .`git` ๋๋ ํ ๋ฆฌ๋ ์ฐ๋ฆฌ์ ์ฝ๋๋ฅผ ์์ ํ๊ธฐ์ํด ์ฌ์ฉ๋๋ ๋ชจ๋ ์ธ๋ถ ๋๋ ํ ๋ฆฌ๋ค์ด ์กด์ฌํ๋ค.
- `.git` ๋๋ ํ ๋ฆฌ๋ฅผ ๋ฌด์ง์ฑ์ผ๋ก ์์ฑํ๋ ๋ถ์์ฌ๋ฅผ ๋ง๋ค์ง๋ง์ !
Git๊ณผ Github ๋ณด์ํต์ : SSH
SSH(Secure Shell)์ ๋คํธ์ํฌ ํ๋กํ ์ฝ ์ค ํ๋๋ก, ์ฃผ๋ก ์๊ฒฉ ์๋ฒ์ ์ ์ํ์ฌ ๊ด๋ฆฌ ์์ ์ ์ํํ ๋ ์ฌ์ฉํ๋ค.
Git๊ณผ Github ๊ฐ์ ํต์ ์ ๋ฏผ๊ฐ์ ๋ณด๊ฐ ๋ง์ด ํฌํจ๋์ด์๊ธฐ ๋๋ฌธ์, ์ด ํต์ ์ ์์ ํ๊ฒ ๋ณดํธํ๋ ๊ฒ์ด ์ค์ํ๋ค.
SSH๋ ์ด๋ฅผ ์ํด ์ํธํ๋ ํต์ ์ฑ๋์ ์ ๊ณตํ๋ค.
- ๋น๋์นญํค ์ํธํ
- SSH ํค ์: SSH๋ ๊ณต๊ฐํค์ ๋น๋ฐํค ์์ ์์ฑํ๋ค, ๋น๋ฐํค๋ ๋ก์ปฌ์ ๋ณด๊ด๋๊ณ ๊ณต๊ฐํค๋ GitHub์ ๋ฑ๋กํ๋ค.
SSH ์ค์ ๋ฐฉ๋ฒ
1. SSH ํค ์์ฑ
ssh-keygen -t ed25519 -C "name@example.com"
- ์ด ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด `~/.ssh/` ๋๋ ํ ๋ฆฌ์ SSH ํค ์์ด ์์ฑ๋๋ค.
- ๋น๋ฐํค: `~/.ssh/id_ed25519`
- ๊ณต๊ฐํค: `~/.ssh/id_ed25519.pub`
2. ๊ณต๊ฐํค ๋ณต์ฌ
cat ~/.ssh/id_ed25519.pub | clip
- Windows์์ ๊ณต๊ฐํค๋ฅผ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํ๋ค.
3. GitHub์ SSH ์ค์ ํ์ด์ง์ ๋ถ์ฌ๋ฃ๊ธฐ.
1. GitHub ๋ก๊ทธ์ธ
2. ์ค๋ฅธ์ชฝ ์๋จ ํ๋กํ ์์ด์ฝ ํด๋ฆญ ํ, "Settings"ํด๋ฆญ
3. ์ผ์ชฝ ๋ฉ๋ด์์ "SSH and GPG keys" ํด๋ฆญ
4. "New SSH key" ๋ฒํผ ํด๋ฆญ, Title์ ์ ๋ ฅ ํ ๋ณต์ฌํ ๊ณต๊ฐํค๋ฅผ "Key"๋์ ๋ถ์ฌ๋ฃ๋๋ค.
5."Add SSH Key"๋ฅผ ํด๋ฆญํ์ฌ ๊ณต๊ฐํค๋ฅผ ๋ฑ๋กํ๋ค.
(ํด๋น ๊ณต์๋ฌธ์ ์ฐธ๊ณ : https://docs.github.com/ko/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account?tool=cli&platform=windows)
์ด๋ฒ ํฌ์คํ ์์ Git๊ณผ Github์ ํ์์ฑ ๋ฐ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ SSH ํต์ ์ ๋ํด ์์๋ณด์๊ณ Github์ ๊ณต๊ฐํค ์ค์ ๊น์ง ๋ค๋ค๋ณด์๋ค.
๋ค์ ํฌ์คํ ์ Git์ ์ฒ์ ์์ํ๋ ๋ฐฉ๋ฒ๊ณผ Local/Remote/Branch ์ ๊ฐ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ๋ํด ๋ช ๋ น์ด๋ฅผ ํตํด ์์๋ณผ ์์ ์ด๋ค.
โน๏ธ์ฐธ๊ณ
[ASAC 6๊ธฐ ๊ฐ์์๋ฃ]
GitHub ๊ณต์๋ฌธ์ (https://docs.github.com/ko)
'๐ป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 #2 - Git ์์๊ณผ Local/Remote Branch ๊ด๋ฆฌ (1) | 2024.09.01 |