1. ๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ Githubแ„…แ…ฉ แ„’แ…งแ†ธแ„‹แ…ฅแ†ธ แ„‘แ…ณแ„…แ…ฉแ„Œแ…ฆแ†จแ„แ…ณ แ„€แ…ชแ†ซแ„…แ…ตแ„’แ…กแ„€แ…ต

title: "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ Github๋กœ ํ˜‘์—… ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌํ•˜๊ธฐ " description: ""์ด์Šˆ(Issue) ๋“ฑ๋ก โžก ํ’€๋ฆฌํ€˜์ŠคํŠธ(Pull request) ์š”์ฒญ โžก ์ฝ”๋“œ๋ฆฌ๋ทฐ(Code review)" Github์˜ ํ˜‘์—… ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌํ•˜๊ธฐ." date: 2020-06-09T17:53:21.352Z

tags: ["git","github","์˜ˆ๋ฐœ์ž๋‹ท์ปด"]

yebalja.com ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด์„œ, 5๋ช…์˜ ํŒ€์›๋“ค๊ณผ ํ˜‘์—…์„ ๊ฒฝํ—˜ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๊ธฐํšŒ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ์ œ๋Œ€๋กœ ๋œ ํ˜‘์—… ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฒฝํ—˜ํ•ด๋ณด์ž๋Š”๋ฐ์— ์˜๊ฒฌ์ด ๋ชจ์˜€๊ณ , ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด ๊นƒํ—ˆ๋ธŒ๋ฅผ ์ด์šฉํ•œ ํ—™์—… ํ”Œ๋กœ์šฐ๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ์ •๋ฆฌํ•  ํ•„์š”์„ฑ์„ ๋Š๊ผˆ๋‹ค.

์šฐ๋ฆฌ์˜ ์ž‘์€ ๋ชฉํ‘œ๋Š” ์ด๋ ‡๋‹ค.

  • Issue, Pull requests, Kanban borad ๋ชจ๋‘ ์ด์šฉํ•ด ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌํ•˜๊ธฐ.

  • Wiki์— ๊ฐœ๋ฐœ์ผ์ง€ ๊ธฐ๋กํ•˜๊ธฐ.

  • ๊ฐœ๋ฐœ ํƒ€์ž„๋ผ์ธ ์ž‘์„ฑํ•˜๊ธฐ.

  • ๋ชจ๋“  ์ปค๋ฐ‹ ๋ฐ ๋ฌธ์„œ๋Š” ์˜์–ด๋กœ ์ž‘์„ฑํ•˜๊ธฐ.

๋‹น์—ฐํžˆ ๋ชจ๋‘ ๊นƒํ—ˆ๋ธŒ๋ฅผ ์ด์šฉํ•œ๋‹ค. Github ํ•˜๋‚˜๋งŒ์œผ๋กœ๋„ ์ด์Šˆ ๊ด€๋ฆฌ, ์ผ์ • ๊ด€๋ฆฌ, ์ฝ”๋“œ ๋ฆฌ๋ทฐ, ๋ฆฌํฌํŠธ ์ž‘์„ฑ ๋“ฑ ๋ถ€์กฑํ•จ ์—†์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

1. ํ˜‘์—… ํ”Œ๋กœ์šฐ

์ „์ฒด์ ์ธ ํ˜‘์—… ํ”Œ๋กœ์šฐ๋Š” ์•„๋ž˜์˜ 5๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅธ๋‹ค.

`์ด์Šˆ ๋ฐœํ–‰` โžก `์ด์Šˆ ์ž‘์—…` โžก `ํ’€๋ฆฌํ€˜์ŠคํŠธ` โžก `์ฝ”๋“œ๋ฆฌ๋ทฐ` โžก `์ด์Šˆ ๋ฐ˜์˜(Merge)`

์ด ํ”„๋กœ์„ธ์Šค๋Š” ๋ชจ๋‘ ๊นƒํ—ˆ๋ธŒ์˜ ์นธ๋ฐ˜ ๋ณด๋“œ์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค.

Kanban Borad ๋ž€?

์นธ๋ฐ˜(Kanban)์€ ์ผ๋ณธ๋ง๋กœ ์นด๋“œ , ๋ˆˆ์— ๋ณด์ด๋Š” ๊ธฐ๋ก ์ด๋ผ๋Š” ๋œป์ด๋‹ค. ์นธ๋ฐ˜ ๋ณด๋“œ๋Š” ๊ฐœ์ธ์ ์ธ ์ˆ˜์ค€์—์„œ๋‚˜ ์กฐ์ง์ ์ธ ์ˆ˜์ค€์—์„œ ์ž‘์—…์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์นด๋“œ ํ˜•์‹์œผ๋กœ ์Šค์ผ€์ค„๋งํ•˜๋Š” ๋„๊ตฌํ•˜๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

๊ฐ ๋‹จ๊ณ„์—์„œ ์‹ค์ œ๋กœ ์–ด๋–ค ์ž‘์—…์„ ํ•ด์•ผํ•˜๋Š” ์ง€๋Š” 3. ํ’€๋ฆฌํ€˜์ŠคํŠธ(pull request) ๋ฐฉ๋ฒ•์— ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.

2. Issue ๋ฐ branch ์ „๋žต

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ๋ฆฌ๋ทฐ์—†์ด master branch๋กœ push ๋˜๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์—, branch๋ฅผ ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ์–ผ๋งˆ๋‚˜ ๋งŒ๋“ค์ง€ ์ •ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

์šฐ๋ฆฌ ํŒ€์€ branch๋ฅผ ๊ธฐ๋Šฅ๋ณ„๋กœ ํŒŒ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. ๋ชจ๋“  ์ด์Šˆ๋งˆ๋‹ค branch๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ด์ƒ์ ์ด์ง€๋งŒ, ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ์— ์ต์ˆ™ํ•ด์ง€๊ธฐ ์ „๊นŒ์ง€๋Š” ์ƒˆ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ์ด์Šˆ์—๋งŒ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

Issue์˜ ๊ธฐ์ค€?

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•จ์— ์žˆ์–ด ์˜๊ฒฌ์ด ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์ด ์ด์Šˆ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ƒˆ๋กœ ์ถ”๊ฐ€๋  ๊ธฐ๋Šฅ, ๊ฐœ์„ ์ , ๋ฒ„๊ทธ ๋“ฑ๋“ฑ. ๋ชจ๋“  ํ™œ๋™์— ๋Œ€ํ•ด์„œ ์ด์Šˆ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ๊ทธ ์ด์Šˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

์ด์Šˆ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ํƒœ๊ทธ๋ฅผ ๋‹ค๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

3. ํ’€ ๋ฆฌํ€˜์ŠคํŠธ(pull request) ๋ฐฉ๋ฒ•

1) branch ์ƒ์„ฑ

๋‚ด๊ฐ€ ๋‹ด๋‹นํ•œ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ ๋‹ค.

git checkout -b [๋ธŒ๋žœ์น˜๋ช…]
  • -b [๋ธŒ๋žœ์น˜๋ช…] : ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

  • checkout [๋ธŒ๋žœ์น˜๋ช…] : ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•œ๋‹ค.

  • git branch : ์กด์žฌํ•˜๋Š” ๋ธŒ๋žœ์น˜ ํ™•์ธ.

2) ์ž‘์—… ์ˆ˜ํ–‰ ํ›„ add, commit, push

ํ•ด๋‹น ๋ธŒ๋žœ์น˜ ๋‚ด์—์„œ ์ˆ˜์ •์ž‘์—…์„ ์™„๋ฃŒํ–ˆ์œผ๋ฉด, origin ์›๊ฒฉ๋ธŒ๋žœ์น˜์— ์ˆ˜์ •์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•œ๋‹ค.

git push -u origin [๋ธŒ๋žœ์น˜๋ช…]
  • -u ์˜ต์…˜

    -u ์˜ต์…˜์„ ๋ช…์‹œํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ๋ธŒ๋žœ์น˜์—์„œ origin๋ธŒ๋žœ์น˜๋กœ์˜ ์—…์ŠคํŠธ๋ฆผ ๊ธธ์ด ํŠธ์—ฌ์„œ, ๊ทธ ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” git push๋งŒ ์ž…๋ ฅํ•ด๋„ ์•Œ์•„์„œ origin๋ธŒ๋žœ์น˜๋กœ ์ˆ˜์ •์‚ฌํ•ญ์ด ๋ฐ˜์˜๋œ๋‹ค.

    ์ฐธ๊ณ ๋กœ, ์•„๋ž˜ ์„ธ ๊ฐœ์˜ ๋ช…๋ น์–ด๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค.

    1. git push -u origin [๋ธŒ๋žœ์น˜๋ช…]
    
    2. git push --set-upstream origin [๋ธŒ๋žœ์น˜๋ช…]
    
    3. git push --set-upsteam-to origin [๋ธŒ๋žœ์น˜๋ช…]

    ๋ฌด์Šจ ์ฐจ์ด์ ์ด ์žˆ๋‚˜ ํ–ˆ๋Š”๋ฐ, Set upstream์˜ ์˜๋ฏธ๊ฐ€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์•„์„œ ๋””ํ…Œ์ผํ•˜๊ฒŒ ์•Œ๋ ค์ฃผ๋ ค๊ณ  set upstream to๊ฐ€ ์ƒ๊ฒผ๋‹ค๊ณ  ํ•œ๋‹ค. 3๋ฒˆ์ด ๊ถŒ์žฅ์‚ฌํ•ญ ์ด์ง€๋งŒ, ๊ฐ„๋‹จํ•˜๊ฒŒ 1๋ฒˆ์„ ์‚ฌ์šฉํ•˜์ž...

3) ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ์œ„ํ•œ PR ์ƒ์„ฑ

origin๋ธŒ๋žœ์น˜์— Push ์™„๋ฃŒ ํ›„ github ์ €์žฅ์†Œ Pull requests ํƒญ์— ๋“ค์–ด๊ฐ€๋ณด๋ฉด create pull request ๋ผ๋Š” ์ดˆ๋ก ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™” ๋˜์–ด์žˆ๋‹ค.

๋ฉ”์„ธ์ง€๋ฅผ ์ž‘์„ฑํ•˜๊ณ  PR์„ ์ƒ์„ฑํ•œ๋‹ค.

  • PR ์ œ๋ชฉ์€ ํ•ด๊ฒฐ๋ฐฉ์•ˆ ์œ„์ฃผ๋กœ ์ž‘์„ฑํ•œ๋‹ค.

  • ๋ฉ”์„ธ์ง€๋Š” ์˜์–ด-์ˆ˜ํ‰์„ -ํ•œ๊ธ€ ์ˆœ์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค.

4) ์ฝ”๋“œ๋ฆฌ๋ทฐ

์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ๋ช‡ ๋ช…์—๊ฒŒ ๋ฐ›์„์ง€ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์šฐ๋ฆฌ๋Š” ํ˜‘์—… ํ”„๋กœ์ ํŠธ ์ดˆ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ํŒ€์› ๋ชจ๋‘์—๊ฒŒ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์•„์•ผ PR์„ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค.

๋ฆฌ๋ทฐ์–ด๋Š” PR์— ๋Œ€ํ•ด 3๊ฐ€์ง€ ์˜์‚ฌํ‘œํ˜„์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Comment : ๊ทธ๋ƒฅ ์ฝ”๋ฉ˜ํŠธ๋งŒ ๋‹ฌ์•„์คŒ.

  • Request changes : ์ฝ”๋“œ์—์„œ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ๋‹ค์‹œ ์ˆ˜์ •ํ•ด๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Œ.

  • Approve : ์ด ์ฝ”๋“œ๊ฐ€ merge ๋˜๋Š” ๊ฒƒ์— ๋™์˜ํ•จ.

5) Merge PR

Approve ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์€ ์ฝ”๋“œ์— ๋Œ€ํ•ด PR ์ž‘์„ฑ์ž๊ฐ€ ์ง์ ‘ merge ํ•œ๋‹ค.

๐Ÿ‘

๋— ! ํ˜„์‹ค์€ 4.์ฝ”๋“œ๋ฆฌ๋ทฐ <-> 2.์ด์Šˆ ์ž‘์—… ์˜ ๋ฌดํ•œ๋ฐ˜๋ณต์ด๊ฒ ์ง€๋งŒ, ๊ทธ๊ฒƒ ๋งˆ์ €๋„ ๋‚ด๊ฐ€ ๋ฐฐ์šฐ๊ณ  ์„ฑ์žฅํ•œ ๊ธฐ๋ก์ด ๋  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์œ ๋งˆ์Œ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•ด๋ณธ๋‹ค.

4. ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐฉ๋ฒ•

  • ๋ฆฌ๋ทฐ๋ฅผ ์š”์ฒญ๋ฐ›์€ ํ’€๋ฆฌํ€˜์ŠคํŠธ์— ๋“ค์–ด๊ฐ€์„œ Add your review์„ ํด๋ฆญํ•œ๋‹ค.

  • ์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ ์€ ๋’ค approve ํ•œ๋‹ค.

    • ๋งŒ์•ฝ ์ฝ”๋“œ์— ์ˆ˜์ •์ด ํ•„์š”ํ•˜๋‹ค๋ฉด Comment๋งŒ ๋‹ฌ๊ฑฐ๋‚˜, Request change๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” Merge ์Šน์ธ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค.

5. ์ฐธ๊ณ  ์‚ฌ๋ก€

Last updated