9์›” 26์ผ์—๋Š” โ€œGit? Git์ด ๋ญ๊ธธ๋ž˜!โ€ ๋ผ๋Š” ์ฃผ์ œ๋กœ ๋‘๋ฒˆ์งธ ์„ธ๋ฏธ๋‚˜๊ฐ€ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

20-30๋ถ„์ด๋ผ๋Š” ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ ๋งŽ์€ ๋‚ด์šฉ์ด ํ•œ๋ฒˆ์— ๋จธ๋ฆฟ์†์— ๋“ค์–ด์™”์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ๋ฉค๋ฒ„๋“ค์€ ๋๊นŒ์ง€ ์ž˜ ์ฐธ์—ฌํ•ด์ฃผ์…จ์–ด์š” ๐Ÿฅบ

๋ฌด์Šจ ๋‚ด์šฉ์ด์—ˆ๋Š”์ง€ ๋‹ค์‹œ ์ƒ๊ธฐ์‹œ์ผœ๋ณด๋„๋ก ํ• ๊นŒ์š”?!

Agenda

  1. Git vs Github
  2. Git ๋ช…๋ น์–ด์™€ ํ๋ฆ„
  3. GDSC ํŒ€ ๋ธ”๋กœ๊ทธ์— ์ฝ”๋“œ ๊ธฐ์—ฌํ•ด๋ณด๊ธฐ
  4. ๋ฒˆ์™ธ, ํ”„๋กœํ•„ ๊พธ๋ฏธ๊ธฐ
  5. ๊ณผ์ œ ๋ฆฌ๋งˆ์ธ๋“œ ๐Ÿš€





1๏ธโƒฃย Git vs Github

Git ?

  • ๋กœ์ปฌ ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ (Local Distributed Version Control System)
  • ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด

Github

  • ํด๋ผ์šฐ๋“œํ˜• Git ํ˜ธ์ŠคํŒ… ์ง€์› ์›น ์„œ๋น„์Šค
  • git์ด ์›๊ฒฉ ์ „์†ก๋œ ํ”„๋กœ์ ํŠธ๋“ค์ด ์ €์žฅ๋˜๋Š” ๊ณต๊ฐ„์„ ์ œ๊ณตํ•˜๋Š” ์›น ์„œ๋น„์Šค

๐Ÿ“Œย ์ถ”๊ฐ€์ ์œผ๋กœ ์•Œ๊ณ ๊ฐ€์ž, Distributed VCS!

git1.png

  • ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ
  • ์„œ๋ฒ„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๊ฐœ๋ฐœ์ž๋“ค์ด ํ”„๋กœ์ ํŠธ ์†Œ์Šค์ฝ”๋“œ์˜ history ๋‚ด์—ญ๋“ค์„ ๋ชจ๋‘ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์„œ, ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜์–ด๋„ ๊ฐœ๋ฐœ์ž๋“ค๊ฐ„์˜ ์ฝ”๋“œ๊ณต์œ ๋ฅผ ํ†ตํ•ด ๋ฒ„์ „๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ
  • ์ด ์‹œ์Šคํ…œ์„ Git, ์„œ๋ฒ„์—ญํ• ์„ ํด๋ผ์šฐ๋“œํ˜•์œผ๋กœ Github์ด ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ฒƒ!



2๏ธโƒฃย Git ๋ช…๋ น์–ด์™€ ํ๋ฆ„

Untitled

  1. Working Directory : ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๊ณต๊ฐ„
  2. Staging Area : git add ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ˆ˜์ •๋œ ๋‚ด์—ญ์ด ์˜ฌ๋ผ๊ฐ€๋Š” ๊ณต๊ฐ„
  3. Local Repository : git commit ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ž์‹ ์˜ ๋กœ์ปฌ ๋ ˆํฌ์— ๋“ฑ๋ก!
  4. 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]				// ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ์ด๋™	

// ~~~ ์ฝ”๋“œ ์ˆ˜์ • ~~~

Untitled

// ~~~ ์ฝ”๋“œ ์ˆ˜์ • ~~~ 

$ git add .
$ git commit -m โ€œadd yejin profileโ€
$ git push origin develop					//origin (๋‚ด ์ €์žฅ์†Œ๋ช…), develop(์ž‘์—… ๋ธŒ๋žœ์น˜๋ช…)
// ํฌํฌ๋œ ๋‚ด ๋ธŒ๋žœ์น˜์—๋งŒ ๋ฐ˜์˜์ด ๋จ
// ๊ทธ๋Ÿฌ๋ฉด ์›๋ณธ ๋ ˆํฌ๋กœ PR ๋‚ ๋ฆฌ๊ธฐ๊ฐ€ ํ•„์š”!

Untitled

Untitled

์ดํ›„,, merge๊ฐ€ ์™„๋ฃŒ๋๋‹ค๋ฉด,,

์ฝ”๋“œ ๋™๊ธฐํ™” ๋ฐ Branch ์‚ญ์ œ๊ฐ€ ํ•„์š”!

$ git pull [์›๊ฒฉ์ €์žฅ์†Œ๋ช…] [์›๊ฒฉ์ €์žฅ์†Œ์˜ ๊ธฐ๋ณธ๋ธŒ๋žœ์น˜๋ช…]		// ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•œ pull ์ฝ”๋“œ
// git pull upstream main			
$ git checkout [๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜๋ช…]						// ๋ธŒ๋žœ์น˜ ์ด๋™			
// git checkout main
$ git branch -D [์ž‘์—…ํ•œ ๋ธŒ๋žœ์น˜๋ช…]					// ๋ธŒ๋žœ์น˜ ์‚ญ์ œ
// git branch -D develop
// -> develop ๋ธŒ๋žœ์น˜ ์‚ญ์ œ

โ†’ ๋ธŒ๋žœ์น˜ ์‚ญ์ œ๋Š” ์‚ญ์ œํ•˜๋ ค๋Š” ๋ธŒ๋žœ์น˜์—์„œ ๋ฒ—์–ด๋‚˜์•ผ๋งŒ ์‚ญ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค!

๐Ÿ˜ตโ€๐Ÿ’ซย ์–ด~ ์ง€๋Ÿฝ์ฃ ?!

ํ•œ๋ฒˆ ๋” ํ๋ฆ„์„ ์žก๊ณ  ๊ฐˆ๊ฒŒ์š”!

Untitled



4๏ธโƒฃย ๋ฒˆ์™ธ, Github ํ”„๋กœํ•„ ๊พธ๋ฏธ๊ธฐ

๋งˆ์ง€๋ง‰์œผ๋กœ ์•„์ฃผ ๋น ~๋ฅด๊ฒŒ ๋„˜์–ด๊ฐ”๋˜ ํ”„๋กœํ•„ ๊พธ๋ฏธ๊ธฐ!

Untitled

์šฐ๋ฆฌ member ๋ถ„๋“ค๋„ ์ด๋ ‡๊ฒŒ ๋ฏ€์ฐ ์Šฌ๋น„, ํ•˜์€, ๊ฑด์ฃผ๋‹˜ ํ”„๋กœํ•„์ฒ˜๋Ÿผ ์ž์‹ ๋งŒ์˜ ๊นƒํ—™ ํ”„๋กœํ•„์„ ๊พธ๋ฏธ๊ณ  ์‹ถ์ง€ ์•Š๋‚˜์š”?

์–ด๋ ต์ง€ ์•Š์•„์š”!

Untitled

๊ธฐ์กด ๋ ˆํฌ ๋งŒ๋“ค๋“ฏ ์ž์‹ ์˜ ๊นƒํ—™ ๋‹‰๋„ค์ž„์œผ๋กœ ๋ ˆํฌ๋ฅผ ํŒŒ๊ณ 

Public, Add a README file ์ฒดํฌ!

Untitled

๋‹ค์Œ ์œ„์— ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์ฒดํฌ๋œ ์ˆ˜์ • ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ readme ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค!

๐Ÿ“Œย Markdown ํŒŒ์ผ

  • ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ๊ฒฝ๋Ÿ‰ ๋งˆํฌ์—… ์–ธ์–ด
  • HTML๋“ฑ ์„œ์‹๋ฌธ์ž๋กœ ์‰ฝ๊ฒŒ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ
  • ์‘์šฉ ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ•จ๊ป˜ ๋ฐฐํฌ๋˜๋Š” README ํŒŒ์ผ์ด๋‚˜ ์˜จ๋ผ์ธ ๊ฒŒ์‹œ๋ฌผ ๋“ฑ์— ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

Untitled

์ œ ๋ฆฌ๋“œ๋ฏธ.. ํŒŒ์ผ.. ใ…Ž

๐ŸŒฑย ๊นƒํ—™์„ ๊พธ๋ฐ€ ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

5๏ธโƒฃย ๊ณผ์ œ ๋ฆฌ๋งˆ์ธ๋“œ ๐Ÿš€

์ž! ์ด์ œ ์„ธ๋ฏธ๋‚˜ ๋‚ด์šฉ์€ ๋งˆ์นฉ๋‹ˆ๋‹น~!~! ์ € ์ด๋•Œ ๋ฐœํ‘œํ• ๋•Œ ์ˆจ์ฐจ ์ฃฝ๋Š” ์ค„ ์•Œ์•˜์–ด์š”.. ํํ™œ๋Ÿ‰ ๋”ธ๋ ค๊ฐ€๊ผฌ ๋ชฉ์†Œ๋ฆฌ ๋ง‰ ๋–จ๋ฆฌ๊ณ  ๊ทธ๋žฌ๋Š”๋ฐ.. ๋‹ค๋“ค ๋ˆˆ์น˜์ฑ„์…จ๋‚˜์š”?ใ…‹ใ…Žใ…Ž

๊ทธ๋ž˜์„œ ์—ฌ๋Ÿฌ๋ถ„๋“ค์€ ๋ฌด์Šจ ์ฝ”๋“œ ๊ธฐ์—ฌ๋ฅผ ํ• ๊ฒƒ์ด๋ƒ ํ•˜๋ฉด~ ์•„~~~์ฃผ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค

์ง€๋””์—ฃ์”จ ๋ฉค๋ฒ„๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ํ•„ ์ˆ˜ ๊ด€ ๋ฌธ

Untitled

์ด๋ ‡๊ฒŒ LEAD, CORE ๋ฉค๋ฒ„๋“ค์€ ์žˆ๋Š”๋ฐ ์•„์ง ์ผ๋ฐ˜ ๋ฉค๋ฒ„๋ถ„๋“ค์€ ์—†์œผ์‹œ์ฃต.. ์–ธ๋Šฅ ๋“ค์–ด์˜ค์„ธ์š”!!

https://github.com/gdsc-seoultech/gdsc-seoultech.github.io ๋กœ ์ด๋™ํ•ด์„œ ์ง์ ‘ Forkํ•ด๋ณด๊ณ 

PR ๋‚ ๋ ค๋ณด๊ธฐ!!! (merge X!! PR๋งŒ!!)

  • _data/members_2.yml ์—์„œ ์ •๋ณด์ˆ˜์ •!
  • โ€œrole: memberโ€
  • ๋‹ค์Œ์ฃผ ์ปค๋ฆฌํ˜๋Ÿผ ์ „๊นŒ์ง€ ๊ฐ ํŒŒํŠธ ์ฝ”์–ด์—๊ฒŒ ํ™•์ธ๋ฐ›์•„์ฃผ์„ธ์š” :)

๋‹ค๋“ค ์„ธ๋ฏธ๋‚˜ ๊ณผ์ œ! ๊ฐ ์ปค๋ฆฌ ๊ณผ์ œ! ํ™”์ดํŒ…์ž…๋‹ˆ๋‹ค~!~!

์ œ ๋ถ€์กฑํ•œโ€ฆ ์„ค๋ช… ๋“ฃ๋Š๋ผ ์ˆ˜๊ณ  ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹น ๋‚„๋‚„โ€ฆ..