๐Ÿคผ Git

[Git] Github ๊ฐ™์€ ์ €์žฅ์†Œ ํ•จ๊ป˜ ์“ฐ๊ธฐ(feat. Github Flow)

Fomagran ๐Ÿ’ป 2021. 5. 13. 18:25
728x90
๋ฐ˜์‘ํ˜•

 

 

์•ˆ๋…•ํ•˜์„ธ์š”๐Ÿ Foma๐Ÿ ์ž…๋‹ˆ๋‹ค!

 

์˜ค๋Š˜์€ Git์œผ๋กœ ๊ฐ™์€ ์ €์žฅ์†Œ๋ฅผ ํ•จ๊ป˜ ์“ฐ๋ฉด์„œ ํ˜‘์—…ํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋‹ค์–‘ํ•œ ํ˜‘์—… ๋ฐฉ์‹ ์ค‘ Gihub Flow์— ๋Œ€ํ•ด์„œ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”!

 

(Visual Studio ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.)


1. ํ•จ๊ป˜ ์“ธ ์ €์žฅ์†Œ ๋งŒ๋“ค๊ณ  ์ดˆ๋Œ€ํ•˜๊ธฐ

 

Github์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ New๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์ƒˆ๋กœ์šด ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.

 

์›ํ•˜๋Š” ์ €์žฅ์†Œ ์ด๋ฆ„์„ ์ ๊ณ  Create Repository๋ฅผ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

 

๋งŒ๋“ค์–ด์ค€ ์ €์žฅ์†Œ์˜ Settings๋กœ ๋“ค์–ด๊ฐ€์„œ ์™ผ์ชฝ ํƒญ์— ์žˆ๋Š” Manage access๋ฅผ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

 

 

Inviete a collaborator ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ํ•จ๊ป˜ ํ•  ์‚ฌ๋žŒ์„ ์ฐพ์•„์ค๋‹ˆ๋‹ค.

 

 

ํ•จ๊ป˜ํ•  ์‚ฌ๋žŒ์„ ๊ณ ๋ฅด๊ณ  Add to this repository๋ฅผ ๋ˆŒ๋Ÿฌ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.

 

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ดˆ๋Œ€ํ•œ ์‚ฌ๋žŒ์ด ๋œจ๊ณ  ์š”์ฒญ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ๋ผ๊ณ  ๋œน๋‹ˆ๋‹ค.

 


2. Git ํด๋ก ํ•˜๊ธฐ (์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ์žˆ๋Š” ์ €์žฅ์†Œ ํ•จ๊ป˜ ์“ฐ๊ธฐ)

 

๋งŒ์•ฝ ์ œ๊ฐ€ ๋งŒ๋“  ์ €์žฅ์†Œ๊ฐ€ ์•„๋‹ˆ๋ผ ์ƒ๋Œ€๋ฐฉ์ด ๋งŒ๋“  ์ €์žฅ์†Œ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”?

 

์ƒ๋Œ€๋ฐฉ์ด ๋งŒ๋“  ์ €์žฅ์†Œ๋กœ ๋“ค์–ด๊ฐ€์„œ ์ดˆ๋ก์ƒ‰ Code ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ  HTTPSํƒญ์„ ์„ ํƒํ•œ ๋’ค url์„ ๋ณต์‚ฌํ•ด์ค๋‹ˆ๋‹ค.

 

 

Visual Studio๋ฅผ ์ผ  ๋’ค shift + command + p ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”.

 

๊ทธ ๋‹ค์Œ git์ด๋ผ๊ณ  ์น˜๋ฉด Git:Clone์ด ๋œฐ๊ฑฐ์—์š”. ํด๋ฆญํ•ด์ฃผ์„ธ์š”!

 

 

์œ„์—์„œ ๋ณต์‚ฌํ•œ url์„ ๋ถ™์—ฌ๋„ฃ๊ณ  ์—”ํ„ฐ๋ฅผ ์ณ์ฃผ๊ณ  ์›ํ•˜๋Š” ๊ณณ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ์— ํด๋ก ํ•œ ์ €์žฅ์†Œ ์ผค๊บผ๋‹ˆ๋ผ๊ณ  ๋ฌผ์–ด๋ณด๋Š”๋ฐ Open์„ ๋ˆŒ๋Ÿฌ์„œ ์ผœ์ฃผ์„ธ์š”!

 


3. ์ƒˆ๋กœ์šด Branch ๋งŒ๋“ค๊ธฐ(๋‚˜๋งŒ์˜ ๊ณต๊ฐ„ ๋งŒ๋“ค๊ธฐ)

 

์ด๋ ‡๊ฒŒ ํด๋ก ํ•œ ์ €์žฅ์†Œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณต์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” main ๋ธŒ๋žœ์น˜์— ์žˆ์–ด์š”.

 

๊ณต์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ €์žฅ์†Œ๋ฅผ ํ•จ๋ถ€๋กœ ๋ฐ”๊พธ๋ฉด ์•ˆ๋˜๊ฒ ์ฃ ?

 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋งŒ ์ฝ”๋“œ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„(Branch)์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

 

Git Clone ํ•  ๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ shitf + command + p ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”!

 

๊ทธ๋ฆฌ๊ณค Create ๋ผ๊ณ  ์น˜๋ฉด Git: Create Branch๊ฐ€ ๋ณด์ผ๊ฑฐ์—์š” ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

 

์›ํ•˜๋Š” ์ด๋ฆ„์„ ์ ์–ด์ฃผ์‹œ๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ์ด ๋ฉ๋‹ˆ๋‹ค.

 


4. ๋‚˜์˜ ์ฝ”๋“œ ์ €์žฅํ•˜๊ณ  ์ €์žฅ์†Œ์— ์˜ฌ๋ฆฌ๊ธฐ (Commit & Push)

 

๋‚˜์˜ ๋ธŒ๋žœ์น˜์—์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ €์žฅ(์ปค๋ฐ‹)ํ•ด์ค๋‹ˆ๋‹ค.

 

์™ผ์ชฝ ํƒญ์— ๊ฐ€์ง€๋ชจ์–‘์„ ๋ˆŒ๋Ÿฌ์ฃผ์‹œ๊ณ  ์ปค๋ฐ‹ํ•  ๋‚ด์šฉ์„ ์ ์€ ๋‹ค์Œ ์ฒดํฌ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  ์ด๋ ‡๊ฒŒ ์ €์žฅํ•œ ๋‚ด์šฉ์„ ํ‘ธ์‰ฌ๋ฅผ ํ•ด์•ผ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์ €์žฅ์ด ๋ฉ๋‹ˆ๋‹ค.

 

 

์ฒดํฌ๋ฒ„ํŠผ ์˜†์˜†์— 3๊ฐœ ์ ๋ชจ์–‘ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ์‹œ๊ณ  Push๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ์›๊ฒฉ ์ €์žฅ์†Œ์— ๋‚ด ๋ธŒ๋žœ์น˜์˜ ์ปค๋ฐ‹์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

 

Github์œผ๋กœ ์ด๋™ํ•ด์„œ ์‹ค์ œ๋กœ ์ปค๋ฐ‹์ด ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ํ•ด๋‹น ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ Insights ํƒญ์„ ๋ˆ„๋ฅด๊ณ  ์™ผ์ชฝ์— Network๋กœ ๋“ค์–ด๊ฐ€๋ฉด

 

์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜์—์„œ ์ƒ๊ธด ์ปค๋ฐ‹๋“ค์ด ํŒŒ๋ž€์ƒ‰ ์ค„๋กœ ์ €์žฅ๋œ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 


5. ๊ณต์šฉ ์ €์žฅ์†Œ์— ๋‚ด ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด๋‹ฌ๋ผ ์š”์ฒญํ•˜๊ธฐ(Pull Request)

 

์ด์ œ ์ด๋ ‡๊ฒŒ ์ž‘์—…ํ•œ ๋‚ด ๋ธŒ๋žœ์น˜์˜ ์ฝ”๋“œ๋“ค์„ ๊ณต์šฉ ์ €์žฅ์†Œ๋กœ ํ•ฉ์น˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”?

 

์šฐ์„ ์€ ๊ฐ™์ด ์ž‘์—…ํ•˜๋Š” ํ˜‘์—…์ž์—๊ฒŒ ๋‚˜์˜ ์ฝ”๋“œ๋“ค์„ ํ•ฉ์ณ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์š”์ฒญํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํ•ด๋‹น ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ด์„œ Pull requests ํƒญ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ •ํ•œ ๋‚ด์šฉ์ด ์žˆ์œผ๋ฉด Compare & pull request๋ฅผ ํ•˜๋ผ๊ณ  ์•Œ๋ฆผ์ด ๋– ์žˆ์„๊ฑฐ์—์š”.

 

 

๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ๋“ค์–ด๊ฐ€๋ฉด pull request๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์ด ๋‚˜์˜ฌ๊ฑฐ์—์š”.

 

์›ํ•˜๋Š” ๋‚ด์šฉ์„ ์ ๊ณ  Create pull request ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 


6. ๊ณต์šฉ ์ €์žฅ์†Œ์™€ ๋ธŒ๋žœ์น˜ ํ•ฉ์น˜๊ธฐ(Git Merge)

 

์ œ๊ฐ€ ์˜ฌ๋ฆฐ ํ’€๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ํ˜‘์—…์ž๊ฐ€ ์ด์ƒ์—†๋‹ค๊ณ  ํ™•์ธํ•˜๊ณ  ์š”์ฒญ์— ์‘๋‹ตํ•˜๋ ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด Merge pull request ๋ผ๋Š” ๋ฒ„ํŠผ์ด ์ƒ๊น๋‹ˆ๋‹ค.

 

(์ง€๊ธˆ์€ ๊ถŒํ•œ์ด ์ €ํ•œํ…Œ๋„ ์žˆ์–ด์„œ ๊ทธ๋ ‡์ง€๋งŒ ์›๋ž˜๋Š” ๋œจ์ง€ ์•Š์•„์š”.)

 

 

๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ๊ฒŒ ๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์„ฑ๊ณต์ ์œผ๋กœ merge๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ๋œน๋‹ˆ๋‹ค.

 

 

์•„๊นŒ์™€ ๊ฐ™์ด insight์— network๋กœ ๊ฐ€์„œ ํ™•์ธํ•ด๋ณด๋ฉด ๋‚ด ๋ธŒ๋žœ์น˜๊ฐ€ ๊ณต์šฉ ๋ธŒ๋žœ์น˜์™€ ํ•ฉ์ณ์ ธ์žˆ์„๊ฑฐ์—์š”!

 


7. ํ•ฉ์ณ์ง„ ๊ณต์šฉ ์ €์žฅ์†Œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ (Git Pull)

 

ํ˜‘์—…์ž์˜ ์ฝ”๋“œ์™€ ํ•ฉ์ณ์ ธ ๋ฐ”๋€ ๊ณต๋™ ์ €์žฅ์†Œ์˜ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด

 

์œ„์ชฝ์— ์žˆ๋Š” Source Control ์˜†์— ์„ธ ์  ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ  Source Control Repositorie๋ฅผ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณค ์•„๋ž˜์—์„œ ๊นƒ๋ชจ์–‘ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด Branch๋“ค์ด ๋ณด์ผ๊ฑฐ์—์š”. ์ด ์ค‘ ๊ณต๋™์ €์žฅ์†Œ์˜ ๋ธŒ๋žœ์น˜์ธ main์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณค ์ปค๋ฐ‹๋ฒ„ํŠผ ์˜†์˜† ์„ธ์  ๋ฒ„ํŠผ ๋ชจ์–‘์„ ๋ˆ„๋ฅธ ๋’ค Pull ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ณต๋™ ์ €์žฅ์†Œ์˜ ์ฝ”๋“œ๋กœ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฐ”๋€” ๊ฑฐ์—์š”!

 


8. ๋‚ด ๋ธŒ๋žœ์น˜์— ๊ณต๋™ ์ €์žฅ์†Œ ์ฝ”๋“œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ(Git Pull from)

 

ํ˜‘์—…ํ•˜๋Š” ์‚ฌ๋žŒ์˜ ํ’€๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋ฐ›๊ณ  ํ•ฉ์ณค๋‹ค๋ฉด ๊ณต๋™ ์ €์žฅ์†Œ์™€ ์ž์‹ ์˜ ์ €์žฅ์†Œ๊ฐ€ ๋‹ค๋ฅด๊ฒ ์ฃ ?

 

์ถฉ๋Œ์ด ์ผ์–ด๋‚˜๋Š”๊ฑธ ๋ง‰๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๊ณต๋™ ์ €์žฅ์†Œ์˜ ์ฝ”๋“œ๋ฅผ ๋‚˜์˜ ๋ธŒ๋žœ์น˜๋กœ ๊ฐ€์ ธ์™€์•ผ ํ• ๊ฑฐ์—์š”.

 

์ด ๋•Œ๋Š” ๋˜‘๊ฐ™์ด ์„ธ์  ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ๊ณ  ์•„๋ž˜๋กœ ๋‚ด๋ ค Pull,Push์— ์žˆ๋Š” Pull from ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ณต๋™ ์ €์žฅ์†Œ์˜ url์ด ๋œฐ๊ฑฐ์—์š”.

 

 

๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ํ˜„์žฌ ์žˆ๋Š” ๋ธŒ๋žœ์น˜๋“ค์ด ์žˆ๋Š”๋ฐ ์šฐ๋ฆฌ๋Š” ๊ณต๋™ ์ €์žฅ์†Œ์˜ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ˆ origin/main์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ž์‹ ์˜ ๋ธŒ๋žœ์น˜๊ฐ€ ๊ณต๋™ ์ €์žฅ์†Œ์˜ ์ฝ”๋“œ๋กœ ๋ฐ”๋€Œ๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 


์ด๋ ‡๊ฒŒ ์˜ค๋Š˜์€ ํ•˜๋‚˜์˜ ์ €์žฅ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ํ˜‘์—…์ž์™€ ํ•จ๊ป˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

ํ˜น์‹œ๋ผ๋„ ๊ถ๊ธˆํ•˜์‹  ์ ์ด ์žˆ๊ฑฐ๋‚˜ ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š”!

728x90
๋ฐ˜์‘ํ˜•