02 Git? Git์ด ๋ญ๊ธธ๋!๐ตโ๐ซ
seminar9์ 26์ผ์๋ โGit? Git์ด ๋ญ๊ธธ๋!โ ๋ผ๋ ์ฃผ์ ๋ก ๋๋ฒ์งธ ์ธ๋ฏธ๋๊ฐ ์งํ๋์์ต๋๋ค!
20-30๋ถ์ด๋ผ๋ ์งง์ ์๊ฐ ๋์ ๋ง์ ๋ด์ฉ์ด ํ๋ฒ์ ๋จธ๋ฆฟ์์ ๋ค์ด์์์๋ ๋ถ๊ตฌํ๊ณ , ๋ฉค๋ฒ๋ค์ ๋๊น์ง ์ ์ฐธ์ฌํด์ฃผ์ จ์ด์ ๐ฅบ
๋ฌด์จ ๋ด์ฉ์ด์๋์ง ๋ค์ ์๊ธฐ์์ผ๋ณด๋๋ก ํ ๊น์?!
Agenda
- Git vs Github
- Git ๋ช ๋ น์ด์ ํ๋ฆ
- GDSC ํ ๋ธ๋ก๊ทธ์ ์ฝ๋ ๊ธฐ์ฌํด๋ณด๊ธฐ
- ๋ฒ์ธ, ํ๋กํ ๊พธ๋ฏธ๊ธฐ
- ๊ณผ์ ๋ฆฌ๋ง์ธ๋ ๐
1๏ธโฃย Git vs Github
Git ?
- ๋ก์ปฌ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ (Local Distributed Version Control System)
- ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํ ์ํํธ์จ์ด
Github
- ํด๋ผ์ฐ๋ํ Git ํธ์คํ ์ง์ ์น ์๋น์ค
- git์ด ์๊ฒฉ ์ ์ก๋ ํ๋ก์ ํธ๋ค์ด ์ ์ฅ๋๋ ๊ณต๊ฐ์ ์ ๊ณตํ๋ ์น ์๋น์ค
๐ย ์ถ๊ฐ์ ์ผ๋ก ์๊ณ ๊ฐ์, Distributed VCS!
- ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
- ์๋ฒ ๋ฟ๋ง ์๋๋ผ, ๊ฐ๋ฐ์๋ค์ด ํ๋ก์ ํธ ์์ค์ฝ๋์ history ๋ด์ญ๋ค์ ๋ชจ๋ ํ์ธํ ์ ์์ด์, ์๋ฒ๊ฐ ๋ค์ด๋์ด๋ ๊ฐ๋ฐ์๋ค๊ฐ์ ์ฝ๋๊ณต์ ๋ฅผ ํตํด ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅ
- ์ด ์์คํ
์ Git, ์๋ฒ์ญํ ์ ํด๋ผ์ฐ๋ํ์ผ๋ก Github์ด ์ ๊ณตํด์ฃผ๋ ๊ฒ!
2๏ธโฃย Git ๋ช ๋ น์ด์ ํ๋ฆ
- Working Directory : ์ค์ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์์ ํ๋ ๊ณต๊ฐ
- Staging Area :
git add
๋ช ๋ น์ด๋ฅผ ํตํด ์์ ๋ ๋ด์ญ์ด ์ฌ๋ผ๊ฐ๋ ๊ณต๊ฐ - Local Repository :
git commit
๋ช ๋ น์ด๋ฅผ ํตํด ์์ ์ ๋ก์ปฌ ๋ ํฌ์ ๋ฑ๋ก! - Remote Repository : git repository์ ๊ฐ๋ค๊ณ ๋ณด๋ฉด ๋จ,
git push
๋ช ๋ น์ด๋ฅผ ํตํด ๋ณ๊ฒฝ์ฌํญ์ด remote repository์ ๋ฑ๋ก!
Git ๋ช ๋ น์ด ์ฝ๋
$ git add . <or> git add [modified file]
$ git commit -m โ์ปค๋ฐ๋ฉ์์งโ // git commit -m โfirst commitโ
$ git push [์๊ฒฉ์ ์ฅ์] [ํ์ฌ ์์
ํ๊ณ ์๋ branch] // git push origin main
3๏ธโฃย GDSC ํ๋ธ๋ก๊ทธ์ ์ฝ๋ ๊ธฐ์ฌํด๋ณด๊ธฐ
๐ย Fork
- ๋ค๋ฅธ ์ฌ๋์ Github repository ์์ ์ด๋ค ๋ถ๋ถ์ ์์ , ์ถ๊ฐ ํ๊ณ ์ถ์ ๋ ํด๋น Repository๋ฅผ ๋ด Github repository๋ก ๊ทธ๋๋ก ๋ณต์ ํ๋ ๊ธฐ๋ฅ
- ํํ, ํฌํฌ๋ฅผ ๋ฌ๋ค๊ณ ํํ
๐ย PR (Pull & Request)
- ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๊ณ ๋ณ๊ฒฝ์ฌํญ์ ๋ํ request๋ฅผ ๋ณด๋ด merge๊ฐ ๋๊ธฐ ์ , ์ฝ๋๋ฅผ ๋ฆฌ๋ทฐํ๊ณ ํ์ธํ๋ ๊ณผ์ ์ ๋๋ค.
๐ย Branch
- ์ฌ๋ฌ๋ช ์ ๊ฐ๋ฐ์๋ค์ด ๊ฐ์ ์ฝ๋๋ฅผ ์์ ํ๋ ์์ ๊ณต๊ฐ
- ์ด์ ๋ฒ์ (main) ํน์ ๋ค๋ฅธ ๋ธ๋์น ๊ฐ์ ์ฝ๋๋ฅผ ๋น๊ต + ํตํฉํ์ฌ ์๋ก์ด ๋ฒ์ ์ ๋ง๋ค์ด๋
๋๋ค.
์ด์ ์ง์ง GDSC ํ๋ธ๋ก๊ทธ ์์ ์ ์ํด Forkํด์ PR์ ๋ ๋ ค๋ณผ๊น์?!
์์๋๋ก ๋ฐ๋ผํ๋ฉด ๋!
$ git clone [https://github.com/yexjin/โฆ] // ๋ด ์ ์ฅ์์ ์์ฑ๋ repository clone
$ git remote add [์๋ณธ ์ ์ฅ์๋ช
] [gdsc ๊ธฐ์กด ๋ ํฌ url] // ์๊ฒฉ ์ ์ฅ์ remote
// ex) git remote add upstream https://github.com/gdsc-seoultechโฆ
$ git branch [branch_name] // ๋ธ๋์น ๋ง๋ค๊ธฐ
$ git checkout [branch_name] // ํด๋น ๋ธ๋์น๋ก ์ด๋
// ~~~ ์ฝ๋ ์์ ~~~
// ~~~ ์ฝ๋ ์์ ~~~
$ git add .
$ git commit -m โadd yejin profileโ
$ git push origin develop //origin (๋ด ์ ์ฅ์๋ช
), develop(์์
๋ธ๋์น๋ช
)
// ํฌํฌ๋ ๋ด ๋ธ๋์น์๋ง ๋ฐ์์ด ๋จ
// ๊ทธ๋ฌ๋ฉด ์๋ณธ ๋ ํฌ๋ก PR ๋ ๋ฆฌ๊ธฐ๊ฐ ํ์!
์ดํ,, merge๊ฐ ์๋ฃ๋๋ค๋ฉด,,
์ฝ๋ ๋๊ธฐํ ๋ฐ Branch ์ญ์ ๊ฐ ํ์!
$ git pull [์๊ฒฉ์ ์ฅ์๋ช
] [์๊ฒฉ์ ์ฅ์์ ๊ธฐ๋ณธ๋ธ๋์น๋ช
] // ๋๊ธฐํ๋ฅผ ์ํ pull ์ฝ๋
// git pull upstream main
$ git checkout [๊ธฐ๋ณธ ๋ธ๋์น๋ช
] // ๋ธ๋์น ์ด๋
// git checkout main
$ git branch -D [์์
ํ ๋ธ๋์น๋ช
] // ๋ธ๋์น ์ญ์
// git branch -D develop
// -> develop ๋ธ๋์น ์ญ์
โ ๋ธ๋์น ์ญ์ ๋ ์ญ์ ํ๋ ค๋ ๋ธ๋์น์์ ๋ฒ์ด๋์ผ๋ง ์ญ์ ๊ฐ ๋ฉ๋๋ค!
๐ตโ๐ซย ์ด~ ์ง๋ฝ์ฃ ?!
ํ๋ฒ ๋ ํ๋ฆ์ ์ก๊ณ ๊ฐ๊ฒ์!
4๏ธโฃย ๋ฒ์ธ, Github ํ๋กํ ๊พธ๋ฏธ๊ธฐ
๋ง์ง๋ง์ผ๋ก ์์ฃผ ๋น ~๋ฅด๊ฒ ๋์ด๊ฐ๋ ํ๋กํ ๊พธ๋ฏธ๊ธฐ!
์ฐ๋ฆฌ member ๋ถ๋ค๋ ์ด๋ ๊ฒ ๋ฏ์ฐ ์ฌ๋น, ํ์, ๊ฑด์ฃผ๋ ํ๋กํ์ฒ๋ผ ์์ ๋ง์ ๊นํ ํ๋กํ์ ๊พธ๋ฏธ๊ณ ์ถ์ง ์๋์?
์ด๋ ต์ง ์์์!
๊ธฐ์กด ๋ ํฌ ๋ง๋ค๋ฏ ์์ ์ ๊นํ ๋๋ค์์ผ๋ก ๋ ํฌ๋ฅผ ํ๊ณ
Public, Add a README file ์ฒดํฌ!
๋ค์ ์์ ๋นจ๊ฐ์์ผ๋ก ์ฒดํฌ๋ ์์ ๋ฒํผ์ ํด๋ฆญํ์ฌ readme ๋งํฌ๋ค์ด ํ์ผ์ ์์ฑํ์๋ฉด ๋ฉ๋๋ค!
๐ย Markdown ํ์ผ
- ์ผ๋ฐ ํ ์คํธ ๊ธฐ๋ฐ์ ๊ฒฝ๋ ๋งํฌ์ ์ธ์ด
- HTML๋ฑ ์์๋ฌธ์๋ก ์ฝ๊ฒ ๋ณํ ๊ฐ๋ฅ
- ์์ฉ ์ํํธ์จ์ด์ ํจ๊ป ๋ฐฐํฌ๋๋ README ํ์ผ์ด๋ ์จ๋ผ์ธ ๊ฒ์๋ฌผ ๋ฑ์ ๋ง์ด ์ฌ์ฉ๋๋ค.
์ ๋ฆฌ๋๋ฏธ.. ํ์ผ.. ใ
๐ฑย ๊นํ์ ๊พธ๋ฐ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Header ๊พธ๋ฏธ๊ธฐ
- ๊นํ๋ธ ์คํ ํ ๋ง
- ๋ฐฐ์ง
- ์์ด์ฝ
- ํ๋ผ๋ฏธํฐ ํํ : **https://img.shields.io/badge/
- logo, logoColor, labelColor๋ฑ์ ์ฟผ๋ฆฌ ์ถ๊ฐ ๊ฐ๋ฅ
- ๋ฐฑ์ค ํฐ์ด
5๏ธโฃย ๊ณผ์ ๋ฆฌ๋ง์ธ๋ ๐
์! ์ด์ ์ธ๋ฏธ๋ ๋ด์ฉ์ ๋ง์นฉ๋๋น~!~! ์ ์ด๋ ๋ฐํํ ๋ ์จ์ฐจ ์ฃฝ๋ ์ค ์์์ด์.. ํํ๋ ๋ธ๋ ค๊ฐ๊ผฌ ๋ชฉ์๋ฆฌ ๋ง ๋จ๋ฆฌ๊ณ ๊ทธ๋ฌ๋๋ฐ.. ๋ค๋ค ๋์น์ฑ์ จ๋์?ใ ใ ใ
๊ทธ๋์ ์ฌ๋ฌ๋ถ๋ค์ ๋ฌด์จ ์ฝ๋ ๊ธฐ์ฌ๋ฅผ ํ ๊ฒ์ด๋ ํ๋ฉด~ ์~~~์ฃผ ๊ฐ๋จํฉ๋๋ค
์ง๋์ฃ์จ ๋ฉค๋ฒ๊ฐ ๋๊ธฐ ์ํ ํ ์ ๊ด ๋ฌธ
์ด๋ ๊ฒ LEAD, CORE ๋ฉค๋ฒ๋ค์ ์๋๋ฐ ์์ง ์ผ๋ฐ ๋ฉค๋ฒ๋ถ๋ค์ ์์ผ์์ฃต.. ์ธ๋ฅ ๋ค์ด์ค์ธ์!!
https://github.com/gdsc-seoultech/gdsc-seoultech.github.io ๋ก ์ด๋ํด์ ์ง์ Forkํด๋ณด๊ณ
PR ๋ ๋ ค๋ณด๊ธฐ!!! (merge X!! PR๋ง!!)
- _data/members_2.yml ์์ ์ ๋ณด์์ !
- โrole: memberโ
- ๋ค์์ฃผ ์ปค๋ฆฌํ๋ผ ์ ๊น์ง ๊ฐ ํํธ ์ฝ์ด์๊ฒ ํ์ธ๋ฐ์์ฃผ์ธ์ :)
๋ค๋ค ์ธ๋ฏธ๋ ๊ณผ์ ! ๊ฐ ์ปค๋ฆฌ ๊ณผ์ ! ํ์ดํ ์ ๋๋ค~!~!
์ ๋ถ์กฑํโฆ ์ค๋ช
๋ฃ๋๋ผ ์๊ณ ๋ง์ผ์
จ์ต๋๋น ๋๋โฆ..