SEB/TIL
007 | Git & Github
kexon
2022. 7. 1. 22:43
๐ ๊น๊ณผ ๊นํ๋ธ
๐ค Git
- ์์ค ์ฝ๋์ ํ์คํ ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๊ณ ์ถ์ ํ ์ ์๋ ๋ฒ์ ๊ด๋ฆฌ์์คํ (ํ๋ก๊ทธ๋จ)
- ๊น์ด ํ๋ ์ผ(๊น์ผ๋ก ํ ์ ์๋ ๊ฒ)
- ์์ค์ฝ๋ ๋ณ๊ฒฝ์ฌํญ ์ถ์ => ์ฌ์ฉ์๊ฐ ๊ฐ ํ์ผ์ ๋ฒ์ ์ ๊ด๋ฆฌ
- ๋ฐฑ์
- ํ์
๐ค Github
- Git Repository๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋น์ค => ์๊ฒฉ ์ ์ฅ์ ๊ธฐ๋ฅ ์ ๊ณต
๐ค ๊น์ ์์ํ๊ธฐ ์ ์! ๊ผญ! ์์์ผ ํ ! ๋ชจ๋ฅด๋ฉด ์ํด์ธ! ์ฉ์ด
- Git Repository: ์ ์ฅ์. ๊ทผ๋ฐ ํด๋/ํ์ผ์ ๊ด๋ฆฌํ๋. ๊ทธ๋ฆฌ๊ณ Git์ผ๋ก ๊ด๋ฆฌ๋จ
- Remote Repository: ์๊ฒฉ(์จ๋ผ์ธ ์๋ฒ) ์ ์ฅ์. ์ฌ๋ฌ ์ฌ๋์ด ํจ๊ป ๊ณต์ ๊ฐ๋ฅ
- Local Repository: ๊ฐ์ธ(๋ด ์ปดํจํฐ) ์ ์ฅ์
๐ค Git workflow
- fork, clone: ๋ค๋ฅธ ์ฌ๋์ ์์ ๋ฌผ์ ๋ด ๋ก์ปฌ๋ก ๋ค์ด๋ก๋ ๋ฐ์
- add, commit, push: ์์ ๋ฌผ์ ์๊ฒฉ(์จ๋ผ์ธ ์๋ฒ) ์ ์ฅ์์ ์ ๋ก๋
- pull request: ์๋ ํ์ ์์๊ฒ ์์ฑ๋ ๋์ ์์ ๋ฌผ์ ์ทจํฉํด๋ฌ๋ผ๊ณ ์์ฒญ
- merge: ์๋์ ๋์ ์์ ๋ฌผ์ ์ทจํฉ
๐ SSH
- Secure Shell์ ์ค์๋ง๋ก, ๋ณด์์ด ๊ฐํ๋ Shell ์ ์
- CLIํ๊ฒฝ(ํฐ๋ฏธ๋)์์ ๋ค๋ฅธ PC์ ์ ์ํ๊ฑฐ๋ ์์ฒญํ ๋ ์ฌ์ฉ
- ๋น๋์นญํค๋ก ์ฌ์ฉ์ ์ธ์ฆ
๐ค SSH ๋ฑ๋ก
1. ํค ์์ฑ
ssh-keygen
- ๊ฒฝ๋ก ~./ssh./์ id_rsa, id_rsa.pub ์์ฑ
- id_rsa: ๊ฐ์ธํค(Private Key), ๋น๋ฐํค(Secret Key)
- id_rsa.pub: ๊ณต๊ฐํค(Public Key)
2. ๊ณต๊ฐํค ๋ณต์ฌ
cat ~/.ssh/id_rsa.pub
3. ๊ณต๊ฐํค ๋ฑ๋ก
- Github > Settings > SSH and GPG keys > New SSH key > Add SSH key
- Title ์ ๊ณ Key์ ๊ณต๊ฐํค ๋ณต์ฌํ ๊ฒ์ ๋ถ์ฌ๋ฃ์ผ๋ฉด ๋จ
๐ ํ์ด ํ๋ก๊ทธ๋๋ฐ
- ๊น ์ํฌํ๋ก์ฐ ๊ฐ์ด ์ค์ตํ๋ ๋๋ฒ์งธ ํ์ดํ๋ก๊ทธ๋๋ฐ์ ํ๋ค.
- ๋๋ ์์ง ๊น์ด๋ ๋ฐ๋ฉด๋ฐ๋ฉดํด์ ๊ฑฑ์ ์ด์๋๋ฐ ์ค๋ ๊ฐ์ด ์ค์ตํ๋ฉด์ ์๋ก ๊ฐ์ง ์ง์๋ค์ ๋๋๊ณ , ๋ถ์กฑํ ๊ฒ์ ๋ณด์ํ๊ณ ์ํตํ๋ ๊ณผ์ ์์ ๊ณต๋ถ๊ฐ ๋ง์ด ๋๋ค. ๋ ์ค๋ช ๋ ์ ํ์๊ณ ์ ๋ค์ด์ฃผ์๊ณ ํด์ ํธ์ํ๊ฒ ์งํ๋์ด์ ์ข์๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ด์ผ๊ธฐ๋ฅผ ํด๋ณด๋ ์ํฉ๊ณผ ๊ถ๊ทน์ ์ผ๋ก ๋ชฉํ๋ก(?)ํ๋ ๋ฐ๊ฐ ๋น์ทํด์ ์ ๊ธฐํ๋ค. ๋ณด๋ด์ฃผ์ ํผ๋๋ฐฑ์ ๊ณต๊ฐ์ด ๋ง์ด ๋๊ณ , ๋ ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
๐ ๊ถ๊ธํ๋๋ฐ ์๊ฒ ๋ ๊ฒ
Q1. git init์ ํ๋ฉด .git์ด ์๊ธฐ๋ฉด์ ๊น์ด ์ถ์ ํ๋ฉด์ ๊ด๋ฆฌ๋ฅผ ๋ฐ๊ฒ ๋จ. ๊ทผ๋ฐ ์ ํ์ผ๋ค์ด Untracked files์ ์ฌ๋ผ๊ฐ์๋์ง?
A1. git init์ ๋ช ๋ น์ด๊ฐ ์๋, ํน์ ํ์ผ์ ๊น์ ๊ด๋ฆฌ ํ์ ๋๊ฒ ๋ค๋ ์ ์ธ์ด๊ธฐ ๋๋ฌธ์ ์ํ๋ ๊ฐ์ฅ ์ด๊ธฐ ์ํ์ธ Untracked files์ ์๋ ๊ฒ
Q2. clone vs pull ๊ธฐ๋ฅ์ด ๋น์ทํ ๊ฒ(remote -> local ๊ฐ์ ธ์ค๋ ๊ฒ์์) ๊ฐ์๋ฐ ์ฐจ์ด์ !
A2. clone์ ์๋๋ฐฉ์ ์์ ๋ฌผ์ ๋ด ์ ์ฅ์๋ก ๋ณต์ ํ๋ ๊ฒ(์๋ ์์ ๋ฌผ์ด ๋์๊ฒ ์์)์ด๊ณ , pull์ ์์ ๋ฌผ์ด ์ด๋ฏธ ์์ด์ ์์ ์ํ๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ๋ฐ์ํ๋ ๊ฒ
๐ Today was ...
- ์ค์น ์ค์ ๋ญ๊ฐ ์ ์๋ผ์ ์ด์์์ด๋ง์ ํ๋๋ฐ ํผ๋๋ฐฑ๋ ์์ฒญ ๋น ๋ฅด์๊ณ ์์ฃผ ์น์ ํ๊ฒ ๋ต๋ณ์ฃผ์ ๊ต์ก ๋ด๋น์๋ถ ์งฑ!!! ์ค์๊ฐ ์ธ์ ์์๋ ์ฑํ ์ผ๋ก ๋ต๋ณ๋ ์ฃผ์๊ณ ~ ๋น๋จ ์ด ๋ถ ๋ฟ๋ง ์๋๋ผ ๋ค๋ค ์ด์ ์ ์ผ๋ก ๋์์ฃผ๋ ค๊ณ ํ์ ์ ์ฐธ ๊ฐ์ฌํ๋ค.
- ํ์ด๊ฐ ๋๋๊ณ ํ์ธต ๋์์ง ์ดํด๋์ ๋ ํผ์ ๊น&๊นํ๋ธ๋ ๋ด์ ์น๋ฐ๊ฐ ๋๊ผ๋ค. ์์ ์ ๋ด๋ ๋ชจ๋ฅด๊ฒ ๊ณ ์์์ง๋ ๋ฌด์ํ ์ ๋ณด๋ค์ ์ง๋ ค์ ๋ณด๊ณ ์ถ์ง๋ ์์๋๋ฐ ์ด์ ๋ด๊ฐ ๋ ์ฐพ์๋ณด๊ฒ ๋๋ค!! ์ง์ง ๊ณ์ ๋ณด๊ณ ์ต์ํด์ง๋ฉด ์ด๋ ์๊ฐ! ๋ญ๊ฐ ์? ํ๊ณ ์! ํ๊ฒ ๋๋ ์๊ฐ์ด ์ค๋ ๊ฒ ๊ฐ๋ค. ๊ทธ ์๊ฐ์ด ๋ฆ๊ฒ ์จ๋ค๊ณ ์ค๊ฐ์ ํฌ๊ธฐํ์ง ์๊ธฐ๋ฅผ!!
- ์ด๋ฒ์ฃผ๊ฐ ๋๋ฌ๋ค. 6์์ด ๊ฐ๊ณ 7์์ด ์๋ค. ์์ ์๋ ๊ณต๋ถํ๋ ๊ฒ์ด ๊ดด๋กญ๊ณ ํ๋ค์์ง๋ง ์ง๊ธ์ ์์๊ฐ๋ ์ฌ๋ฏธ๊ฐ ์๋ค. (์์ง๊น์ง๋?!ใ ) ๊ณ์ ๋ชฉํ๋ฅผ ์๊ธฐํ๊ณ ๊ณํ์ ์ธ์ฐ๊ณ ๋๊ธฐ๋ถ์ฌ๋ฅผ ํ์ ์์์ฃ!!!๐๐