๊ธฐํš(PM & PO)/๐Ÿ“‘ Git & Github

IT ์„œ๋น„์Šค๋ฅผ ์กฐ์งํ•˜๊ณ , ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.
Git์— ๋Œ€ํ•œ ๋ณธ๋ฌธ์€ ์ด์ „ ๊ธ€๊ณผ ์ด์–ด์ง‘๋‹ˆ๋‹ค!! ์ „ ๋‚ด์šฉ์ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!! ํ˜‘์—…์„ ์œ„ํ•œ Git-Flow ์ „๋žต [GIT] ํ˜‘์—…(Collaboration)์„ ์œ„ํ•œ 'Git-Flow' ์ „๋žต ์šฐ๋ฆฌ๋Š” ๊นƒ๊ณผ ๊นƒํ—ˆ๋ธŒ๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ์„œ์˜ ๊ธฐ๋Šฅ, ๋™์‹œ์— ๋ฒ„์ „๊ด€๋ฆฌ์™€ ๋ฐฑ์—…, ๋‚˜์•„๊ฐ€ 'ํ˜‘์—…'์„ ์œ„ํ•œ ํˆด์ž„์„ ์•ž์„  ๊ธ€๋“ค์„ ํ†ตํ•ด ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ณธ๊ฒฉ์ ์œผ jhklee-coder.tistory.com Fork Fork(๋– ์˜ค๋‹ค, ๊ฐ€์ ธ์˜ค๋‹ค ๋“ฑ) : " '๊ธฐ์กด์— ์žˆ๋˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณธ์ธ์˜ ์ €์žฅ์†Œ์— ๋˜‘๊ฐ™์€ ํ˜•ํƒœ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋™์ž‘' ํ˜น์€ 'ํฌํฌ'ํ•ด์„œ ๊ฐœ์ธ ๊นƒํ—™ ์ €์žฅ์†Œ๋กœ ๋ณต์‚ฌํ•ด์˜ค๋Š” ํ–‰์œ„" ์ •๋„๋กœ ์ดํ•ดํ•˜๋ฉด ๋  ๋“ฏํ•˜๋‹ค. ๊ฝค ๊ทœ๋ชจ๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์ด๊ฑฐ๋‚˜ ํ˜น์€ ๊ธฐ์กด์— ์ด๋ฏธ ์ง„ํ–‰ ์ค‘์ด๋˜ ์—…๋ฌด์˜ ๊ฒฝ์šฐ, ์ƒˆ๋กœ์šด ํŒ€์›์ด ์™”๋‹ค๊ณ  ํ•ด์„œ ์ƒˆ๋กœ ์ €..
์‚ฌ๋žŒ(ํ‘œ์ •) ๐Ÿ˜„ :smile: ๐Ÿ˜† :laughing: ๐Ÿ˜Š :blush: ๐Ÿ˜ƒ :smiley: โ˜บ๏ธ :relaxed: ๐Ÿ˜ :smirk: ๐Ÿ˜ :heart_eyes: ๐Ÿ˜˜ :kissing_heart: ๐Ÿ˜š :kissing_closed_eyes: ๐Ÿ˜ณ :flushed: ๐Ÿ˜Œ :relieved: ๐Ÿ˜† :satisfied: ๐Ÿ˜ :grin: ๐Ÿ˜‰ :wink: ๐Ÿ˜œ :stuck_out_tongue_winking_eye: ๐Ÿ˜ :stuck_out_tongue_closed_eyes: ๐Ÿ˜€ :grinning: ๐Ÿ˜— :kissing: ๐Ÿ˜™ :kissing_smiling_eyes: ๐Ÿ˜› :stuck_out_tongue: ๐Ÿ˜ด :sleeping: ๐Ÿ˜Ÿ :worried: ๐Ÿ˜ฆ :frowning: ๐Ÿ˜ง :anguished: ๐Ÿ˜ฎ :open_mouth: ๐Ÿ˜ฌ :gri..
ํ˜‘์—…(Collaboration)์„ ์œ„ํ•œ 'Git-Flow' ์ „๋žต ์šฐ๋ฆฌ๋Š” ๊นƒ๊ณผ ๊นƒํ—ˆ๋ธŒ๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ์„œ์˜ ๊ธฐ๋Šฅ, ๋™์‹œ์— ๋ฒ„์ „๊ด€๋ฆฌ์™€ ๋ฐฑ์—…, ๋‚˜์•„๊ฐ€ 'ํ˜‘์—…'์„ ์œ„ํ•œ ํˆด์ž„์„ ์•ž์„  ๊ธ€๋“ค์„ ํ†ตํ•ด ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ด ํ˜‘์—…์„ ์œ„ํ•œ ํšจ๊ณผ์ ์ธ Git-flow ์ „๋žต์„ ํ•œ ๋ฒˆ ์‚ดํŽด๋ณด์ž. ์ด ์ „๋žต์€ ๋‹ค๋ฅธ ๋ง๋กœ๋Š” Branch ์ „๋žต์ด๋ผ๊ณ ๋„ ํ•˜๋Š”๋ฐ, ์—ฌ๋Ÿฌ ๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ 1๊ฐœ์˜ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ํšจ๊ณผ์ ์œผ๋กœ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๊ฐœ๋…์ด๋‹ค. ์ด๋ฒˆ์—” GitKraken์ด๋ผ๋Š” GUI๋ฅผ ํ™œ์šฉํ•ด GIT ๋ช…๋ น์–ด๋ฅผ ํ™œ์šฉํ•œ ์—…๋กœ๋“œ๋ณด๋‹ค ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•œ Git-flow ์ „๋žต์„ ์ž‘์„ฑํ•ด๋ณด๋ ค ํ•œ๋‹ค. (์•„๋ž˜์˜ ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ๋“ค๊ณผ ํ•จ๊ป˜!) - Branch - Push (+commit) - Pull Request (+review) - M..
1. Git๊ณผ GitHub Git๊ณผ GitHub์˜ ๊ด€๊ณ„๋Š” ์–ด๋–ป๊ฒŒ ๋˜๋Š” ๊ฑธ๊นŒ? ๋ณธ๊ฒฉ์ ์œผ๋กœ GitHub ์‚ฌ์šฉ๋ฐฉ๋ฒ•๊ณผ ๊ทธ ์—ญํ• (๋ณธ์งˆ)์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ ๋ณผ ์ฐจ๋ก€๋‹ค. ์•ž์„œ Git ์ด๋ผ๋Š” ๊ฐ•๋ ฅํ•œ '๋ฒ„์ „๊ด€๋ฆฌ, ๋ฐฑ์—…, ํ˜‘์—…' ํˆด์„ ์‚ดํŽด๋ณด์•˜๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ Git ์„ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ๋ฐ”๋กœ 'ํด๋ผ์ด์–ธํŠธ'์™€ '์„œ๋ฒ„'์ด๋‹ค. Client: Git ์ปค๋งจ๋“œ ๋ผ์ธ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์†Œ์ŠคํŠธ๋ฆฌ, GitHub desktop ๋“ฑ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ๋‚ด์žฌํ•œ ๊ณณ. Server: Git ์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ ์„œ๋กœ ๋‹ค๋ฅธ ์ƒํƒœ์˜ ๋ฒ„์ „๋“ค, ํŒŒ์ผ, ๋‚ด์šฉ์„ ์ €์žฅํ•˜๋Š” ๊ณณ. ๋ˆ„๊ตฌ๋‚˜ ์•Œ ๋ฒ•ํ•œ Dropbox ๋ผ๋Š” ์„œ๋น„์Šค์™€์˜ ๋น„๊ต๋ฅผ ํ†ตํ•ด ๊ฐœ๋…์„ ์‚ดํŽด๋ณด์ž. Dropbox๋„ Git ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Client๊ฐ€ ์กด์žฌํ•˜๊ณ , Server๊ฐ€ ์กด์žฌํ•œ๋‹ค. ํ•˜์ง€๋งŒ, D..
ํ•ด๋‹น ๊ธ€์€ ๊นƒ์„ ํ†ตํ•ด ๋ฌธ์„œํ™”์™€ ๋ฐฑ์—…, ๋ฒ„์ „ ๊ด€๋ฆฌ ๋“ฑ์„ ํ†ตํ•ด ๋ณด๋‹ค ํšจ์œจ์„ฑ์„ ์ถ”๊ตฌํ•˜๊ณ ์ž..! ์ œ ๋ง˜๋Œ€๋กœ, ์ œ ์ž„์˜๋Œ€๋กœ, ์ œ ์ž…๋ง›๋Œ€๋กœ! ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋‹ค์†Œ ๊ฐœ๋…๋“ค์ด ๋‚œ์žกํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ํž˜๋“ค๋‹ค๊ณ  ๋Š๋ผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ์ €๋งŒ์˜ ๋ฐฉ์‹์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ , ์ตœ๋Œ€ํ•œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ–ˆ๊ธฐ์— ๋‹จ์ˆœํ•œ ์ •๋ฆฌ์—์„œ ๊ทธ์น˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์—ฌ๋Ÿฌ๋ถ„์˜ ํ•™์Šต๊ณผ ์ˆ™๋‹ฌ์— ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋…์ ์ธ ์˜ค๋ฅ˜์™€ ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด ์–ธ์ œ, ์–ด๋””์„œ๋“  ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ์— ํ•ด๋‹น ๋ถ€๋ถ„์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์ด ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“  ํ™˜์˜์ž…๋‹ˆ๋‹ค. 0. 'GIT' ์ด ๋ญ์ง€? ์ˆ˜์‹ญ ๋…„ ๋™์•ˆ ์ˆ˜๋งŽ์€ ํŒŒ์ผ๊ณผ ์ •๋ณด๋“ค์ด ๋Š์ž„์—†์ด ๋ณ€ํ™”ํ•˜๊ณ  ๋ณต์ œ๋˜๊ณ  ์žˆ๋‹ค๋ฉด... ์šฐ๋ฆฐ ๊ทธ ๋ฌธ์„œ, ์ •๋ณด๋“ค์„ ์–ด๋–ป๊ฒŒ ๋ณด๊ด€ํ•˜๊ณ  ์—ด์–ด๋ณด๋ฉฐ ๊ณ„์†ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์šฐ๋ฆฐ ์ด ๋ฌธ์„œ๋“ค๊ณผ ์ •๋ณด๋ฅผ ๋ณด๋‹ค ์ •๋ˆ๋˜๊ณ , ๋ณด๊ธฐ ํŽธ..