Notice
Recent Posts
Recent Comments
Link
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

lgvv98

[git] Git-flow ์ „๋žต๊ณผ ํ”„๋กœ์ ํŠธ ์˜ˆ์‹œ(feat. Kuring) ๋ณธ๋ฌธ

iOSํ”„๋กœ์ ํŠธ/โ˜˜๏ธ Kuring

[git] Git-flow ์ „๋žต๊ณผ ํ”„๋กœ์ ํŠธ ์˜ˆ์‹œ(feat. Kuring)

๐Ÿฅ• ์บ๋Ÿฟ๋งจ 2022. 6. 10. 13:29

Git-flow ์ „๋žต๊ณผ ํ”„๋กœ์ ํŠธ ์˜ˆ์‹œ(feat. Kuring)

 

โœ… Kuring์—์„œ ์‚ฌ์šฉํ•˜๋Š” Git-flow ๋ถ„์„๊ณผ Git-flow์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉฐ, Kuring์—์„œ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ปค๋ฐ‹ ๊ทœ์น™์„ ์ •๋ฆฌํ•˜๊ณ ์ž ํฌ์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค.

 

ํšŒ์˜๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ์— ์•ž์„œ, ๋ฐ”๋กœ ํšŒ์˜ ๋‚ด์šฉ๋งŒ ์ด์•ผ๊ธฐ ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๊ฐ€๋ณ๊ฒŒ ์Šค๋ชฐํ†ก์œผ๋กœ ์ฃผ๋กœ ์‹œ์ž‘ํ•˜๋Š”๋ฐ ๋‚ด ํฌ์ŠคํŒ…๋„ ๊ฐ€๋ณ๊ฒŒ ์•„๋ฌด๋ง์ด๋‚˜ ์ ์ž.์ตœ๊ทผ์— [1.2.0] ๋ฒ„์ „ ์ดํ›„๋กœ ๊ธฐ์กด์— UIKit์œผ๋กœ ์ž‘์„ฑ ๋œ ์ฝ”๋“œ๋ฅผ SwiftUI๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ ์ž‘์—…์„ ๊ณต์œ ํ•˜์—ฌ ํ•˜๋Š” ๋“ฑ ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด ๋งŽ์•˜๋Š”๋ฐ, ๊นƒ์„ ๊ทธ๋ƒฅ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ•„์š”ํ•œ ๊ฒƒ๋“ค๋งŒ ์ฐพ์•„์„œ ํ•˜๋‹ค๋ณด๋‹ˆ ๊ฐ™์ด ์ž‘์—…ํ•˜๋Š” ๋ถ„์ด ๊นƒ ๊ด€๋ฆฌ๋ฅผ ์ฃผ๋กœ ๋งก์•„์„œ ํ•ด์ฃผ์…จ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฌด์—‡๋ณด๋‹ค๋„ ํ˜„์ง์ž ๋ถ„์ด์…”์„œ ๋•๋ถ„์— ์‹ค์ œ๋กœ ์ ์šฉ๋˜๋Š” ๋ชจ๋ธ์„ ์—ฐ์Šตํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ํก์ˆ˜ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. - ์ด๊ฑด ๊ฐ์‚ฌ์˜ ๋งโœจ -

๋ฌผ๋ก  ๊ฐœ์ธ ๋ ˆํฌ์—์„œ ์‹œํ–‰์ฐฉ์˜ค๊ฐ€ ๋งŽ์•˜๋‹ค

 

๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๊ธฐํšŒ์— ํ™•์‹คํžˆ ์•Œ์•„๋‘๊ณ , ์Šค์Šค๋กœ ๋ฆฌ๋“œํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„œ ์ œ๋Œ€๋กœ ์ •๋ฆฌ๋ฅผ ํ•˜๊ณ ์ž ํ•จ!

 

[Kuring-iOS Version์— ๋”ฐ๋ฅธ ์ƒˆ๋กœ์šด ๋‚ด์šฉ] - ์ด๊ฑด ๊นจ์•Œ ํ™๋ณด

https://kuring.notion.site/kuring/iOS-eef51c986b7f4320b97424df3f4a5e3c

 

์ƒˆ๋กœ์šด ๋‚ด์šฉ - iOS

What’s new?

kuring.notion.site

 

 

 

๐Ÿฅ• ๋ชฉ์ฐจ ๐Ÿฅ•

1. ์šฐ์•„ํ•œ ํ˜•์ œ๋“ค Git-flow ์ „๋žต์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ธฐ

2. Kuring์˜ Git-flow ์ „๋žต ๋ถ„์„ (์†Œ๊ทœ๋ชจ ํŒ€์—์„œ์˜ Git-flow ์ „๋žต)

3. Git-flow ์ „๋žต์„ ๊ฐœ์ธ ๋ ˆํฌ์— ์ ์šฉํ•˜๊ณ  ์—ฐ์Šตํ•ด๋ณด๊ธฐ

4. git ์ถฉ๋Œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

 

 

โœ… 1. ์šฐ์•„ํ•œ ํ˜•์ œ๋“ค Git-flow ์ „๋žต์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ธฐ

์šฐ์•„ํ•œ ํ˜•์ œ๋“ค ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ Git-flow ์ „๋žต์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•ด ๋ด…๋‹ˆ๋‹ค.

๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋Š” ํฌ์ŠคํŒ… ์ตœํ•˜๋‹จ์— ๋งํฌ๋ฅผ ๊ฑธ์–ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

 

๐ŸŸ  Git Repositiry ๊ตฌ์„ฑ ์‚ดํŽด๋ณด๊ธฐ!

 

๊นƒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๊ตฌ์„ฑ!

Repository๋Š” Upstream Remote Repository(์ดํ•˜ Upstream Repository)์™€ Origin Remote Repository(Origin Repository), Local Repository๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. 

 

Upstream Repository์ด๋ž€ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ณต์œ ํ•˜๋Š” ์ €์žฅ์†Œ๋กœ ์ตœ์‹  ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค.

Origin Repository๋Š” UpStream Repository๋ฅผ Forkํ•œ ์›๊ฒฉ ๊ฐœ์ธ ์ €์žฅ์†Œ ์ž…๋‹ˆ๋‹ค. Local Repository๋Š” ๋‚ด ์ปดํ“จํ„ฐ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฐœ์ธ ์ €์žฅ์†Œ ์ž…๋‹ˆ๋‹ค.

 

์œ„์˜ ๊ทธ๋ฆผ์€ Git Repository ๊ตฌ์„ฑ๊ณผ ์›Œํฌ ํ”Œ๋กœ์šฐ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Local Repository์—์„œ ์ž‘์—…์„ ์™„๋ฃŒํ•œ ํ›„ ์ž‘์—… ๋ธŒ๋žœ์น˜๋ฅผ Origin์— pushํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Github์—์„œ Origin Repository์— Pushํ•œ ๋ธŒ๋žœ์น˜๋ฅผ mergeํ•˜๋„๋ก PR์„ ์ƒ์„ฑํ•˜๊ณ  ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๊ฑฐ์นœ ํ›„ mergeํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์ƒˆ๋กœ์šด ์ž‘์—…์„ ์ง„ํ–‰ํ•  ๋•Œ, Local Repository์—์„œ Upstream Repository๋ฅผ Pull ํ•ฉ๋‹ˆ๋‹ค!

 

 

๐ŸŸ  Git-flow ์ „๋žต ์‚ดํŽด๋ณด๊ธฐ!

Git-flow๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์ž‘์—…์„ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ธฐ ์ „์— ์šฐ์„  Git-flow์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Git-flow์—๋Š” 5๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ๋ธŒ๋žœ์น˜๊ฐ€ ์กด์žฌํ•˜๋นˆ๋‹ค. ํ•ญ์ƒ ์œ ์ง€๋˜๋Š” ๋ฉ”์ธ ๋ธŒ๋žœ์น˜๋“ค(main, develop)๊ณผ ์ผ์ • ๊ธฐ๊ฐ„ ๋™์•ˆ๋งŒ ์œ ์ง€๋˜๋Š” ๋ณด์กฐ ๋ธŒ๋žœ์น˜๋“ค(feature, release, hotfix)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

( * NOTE: master ๋ธŒ๋žœ์น˜์˜ ์ด๋ฆ„์€ main์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. )

 ๐Ÿ‘‰ main: ์ œํ’ˆ์œผ๋กœ ์ถœ์‹œ๋  ์ˆ˜ ์žˆ๋Š” ๋ธŒ๋žœ์น˜

 ๐Ÿ‘‰ develop: ๋‹ค์Œ ์ถœ์‹œ ๋ฒ„์ „์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜

 ๐Ÿ‘‰ feature: ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜

 ๐Ÿ‘‰ release: ์ด๋ฒˆ ์ถœ์‹œ ๋ฒ„์ „์„ ์ค€๋น„ํ•˜๋Š” ๋ธŒ๋žœ์น˜

 ๐Ÿ‘‰ hotfix: ์ถœ์‹œ ๋ฒ„์ „์—์„œ ๋ฐœ์ƒํ•  ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ธŒ๋žœ์น˜

 

 

๐ŸŸ  Git-flow๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๊ทธ๋ฆผ

 

์ด๋งŒํ•œ ๊ทธ๋ฆผ์€ ์—†์Šต๋‹ˆ๋‹ค!

 

์œ„ ๊ทธ๋ฆผ์€ ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋ฐœ ํ๋ฆ„์œผ๋กœ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” main ๋ธŒ๋žœ์น˜์™€ develop ๋ธŒ๋žœ์น˜๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  develop ๋ธŒ๋žœ์น˜๋Š” main ๋ธŒ๋žœ์น˜ ์•ˆ์—์„œ ์‹œ์ž‘ํ•œ ๋ธŒ๋žœ์น˜์ž…๋‹ˆ๋‹ค. 

develop ๋ธŒ๋žœ์น˜์—์„œ๋Š” ์ƒ์‹œ๋กœ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹๋“ค์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. develop ๋ธŒ๋žœ์น˜์—์„œ๋Š” ์ƒ์‹œ๋กœ ์ˆ˜์ •ํ•œ ์ฝ”๋“œ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. feature ๋ธŒ๋žœ์น˜๋Š” ์–ธ์ œ๋‚˜ develop ๋ธŒ๋žœ์น˜์—์„œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด, feature ๋ธŒ๋žœ์น˜๋Š” develop ๋ธŒ๋žœ์น˜๋กœ PR์„ ํ†ตํ•œ ์ฝ”๋“œ๋ฆฌ๋ทฐ ์ดํ›„ merge๋ฉ๋‹ˆ๋‹ค. develop๋ธŒ๋žœ์น˜๋Š” ์ด๋ฒˆ ๋ฒ„์ „์— ํฌํ•จ๋˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์ด merge ๋˜์—ˆ๋‹ค๋ฉด QA๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ develop ๋ธŒ๋žœ์น˜์—์„œ release ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. QA๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ๋“ค์€ release ๋ธŒ๋žœ์น˜์— ์ˆ˜์ •๋ฉ๋‹ˆ๋‹ค. QA๋ฅผ ๋ฌด์‚ฌํžˆ ํ†ต๊ณผํ•˜์˜€๋‹ค๋ฉด release ๋ธŒ๋žœ์น˜๋ฅผ develop ๋ธŒ๋žœ์น˜์™€ main ๋ธŒ๋žœ์น˜๋กœ mergeํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ์ถœ์‹œ๋œ main ๋ธŒ๋žœ์น˜์—์„œ ๋ฒ„์ „ ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

 

๐ŸŸ  rebase์™€ squash์˜ ํ•„์š”์„ฑ์— ๋Œ€ํ•œ ๊ทธ๋ฆผ

 

4,5๋ฒˆ์ด rebase์™€ squash์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค.

rebase์™€ squash๋ฅผ ํ–ˆ์„ ๋•Œ ์–ผ๋งˆ๋‚˜ ๋‹จ์ˆœํ•ด ์ง€๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถˆํ•„์š”ํ•œ ์ปค๋ฐ‹์˜ ๊ฒฝ์šฐ์—๋Š” ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ๋„์™€์ฃผ์ง€๋„ ๋ชปํ•  ๋ฟ๋”๋ผ, ๊ทธ๋ ‡๊ธฐ์— ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๋Š” ๊ฒƒ์€ ์ข‹์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํ•ญ์ƒ ํ•ฉ์ณ์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋Š”๊ฒŒ ํ•˜๋‚˜์˜ ์ปค๋ฐ‹์„ ๋‚ซ๋‹ค๋ฉด ์˜คํžˆ๋ ค ๋‚˜๋ˆŒ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋ถ€๋ถ„ ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ๋Š” ์ž‘์—…์„ ์ƒ์„ธํ•˜๊ฒŒ ๋‚˜๋ˆ„์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

 

 

โœ…  2. Kuring์˜ Git-flow ์ „๋žต ๋ถ„์„ (์†Œ๊ทœ๋ชจ ํŒ€์—์„œ์˜ Git-flow ์ „๋žต)

๐ŸŸ  ์—ฌ๊ธฐ์—์„œ๋Š” ์‹ค์ œ๋กœ Kuring์—์„œ ์–ด๋–ป๊ฒŒ ์ž‘์—…ํ•˜๋Š”์ง€ ๋ถ„์„ํ•ด ๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.

Kuring์—์„œ๋Š” Git-flow ์ „๋žต์„ ์ ์šฉํ•˜์—ฌ, develop, main ๋ธŒ๋žœ์น˜๋ฅผ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

Upstream Remote Repository

Kuring-app-ios ๋ถ€๋ถ„์˜ ์›๊ฒฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

develop branch๋Š” ํ•˜๋‚˜์˜ Upstream Remote Repository์ž…๋‹ˆ๋‹ค. 

Origin Remote Repository๋Š” ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

Origin Remote Repository

feature ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์—์„œ feature ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•œ๋‹ค๋ฉด ํ”„๋กœ์ ํŠธ ํŒ€์—์„œ ์ €ํฌ๋Š” 

[feature/์ด๋ฆ„/๋‚ด์šฉ] ์ด๋Ÿฐ์‹์œผ๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ๋ถ„๊ธฐํ•˜์—ฌ์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  Origin Remote Repository์—์„œ ์ž‘์—…์„ ๋งˆ์น˜๋ฉด develop branch๋กœ Pull Request๋ฅผ ์—ด๊ณ  ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

์ดํ›„ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๊ฐ€ ๋๋‚ฌ๋‹ค๋ฉด mergeํ•˜๊ณ  ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ์—์„œ deleteํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡์ง€๋งŒ ์ €๋Š” ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํ˜„์žฌ ์ž‘์—… ์ง„ํ–‰์ƒํ™ฉ์„ ๊ณต์œ ํ•˜๊ณ ์ž PR์„ openํ•˜๊ณ  work in progress ๋ ˆ์ด๋ธ”์„ ์„ค์ •ํ•˜์—ฌ ๋‘ก๋‹ˆ๋‹ค.

work in progress (wip)

 

PR์„ ํ†ตํ•ด ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ๋Š” ์ผ์ •ํ•œ ๊ทœ์น™์ด ์žˆ์Šต๋‹ˆ๋‹ค.

PR ์š”์ฒญ์‹œ, ์ž‘์—… ๋‚ด์šฉ์— ๋Œ€ํ•ด ์ž‘์„ฑ

 

์ €์˜ ๊ฒฝ์šฐ์—๋Š” ์ž‘์—… ์ค‘์— PR์„ openํ•˜๊ณ  wip๋ฅผ Label์„ ๋‹ฌ์•„๋‘์–ด์„œ, ์œ„์— ์ฐฝ์„ ์ž์ฃผ ํ™œ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์ธ ํ‹€์€ ์ง€ํ‚ค๊ณ  ํ•˜์œ„์—๋Š” ์ œ๊ฐ€ ์ž‘์—…ํ•˜๋Š” ๋‚ด์šฉ์— ๋Œ€ํ•œ ์‚ฌํ•ญ์„ ์ ์–ด๋‘์–ด์„œ ์ด ๋ถ€๋ถ„๋งŒ ํ™•์ธํ•˜๊ณ  ์ž‘์—…์„ ์ด์–ด๊ฐ‘๋‹ˆ๋‹ค.

์œ„์— ์ฐฝ์— [DONE], [FIXME], [ISSUE], [ํ™•์ธํ• ์‚ฌํ•ญ], [๋‹ค์Œ ์ž‘์—…] ๋“ฑ์„ ๊ธ€๋กœ ๊ธฐ๋กํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 

์•„๋ž˜๋Š” PR ๋‚ด์šฉ ์ค‘ ์ผ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

PR open ํ™œ์šฉํ•˜๋Š” ์˜ˆ์‹œ

๐ŸŸ  Kuring์„ ํ†ตํ•ด์„œ ์ •๋ฆฝํ•œ ๋‚˜์˜ commit ๊ทœ์น™

๊ทธ๋™์•ˆ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ์–ด๋–ป๊ฒŒ ํ• ์ง€ ๊ณ ๋ฏผ์ด ๋งŽ์•˜๋Š”๋ฐ, ์ด์ œ๋Š” ๋‚˜๋ฆ„ ํ™•์‹คํžˆ ์ •๋ฆฝํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜์— ๊ทธ ์˜ˆ์‹œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 

Source Tree๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž‘์„ฑํ•œ ์ปค๋ฐ‹ ๊ธฐ๋ก๋“ค

์ด์ „์—๋Š” [์‚ญ์ œ], [์ด์Šˆ] ๋“ฑ์„ ๋” ๋‹ค์–‘ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ œ๊ฒŒ ๊ฐ€์žฅ ์ž˜ ๋งž๋Š” ๊ทœ์น™์„ ์ •๋ฆฝํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

์ปค๋ฐ‹ ์ž‘์„ฑ ๋‚ด์šฉ์€ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด์•˜์„ ๋•Œ๋„ ํ™•์‹คํ•˜๊ฒŒ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ‘‰ [์ถ”๊ฐ€] ๊ฐœ๋ฐœํ•œ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ‘‰ [์ˆ˜์ •] ์ฃผ์„ ์ •๋ฆฌ, ํŒŒ์ผ ์‚ญ์ œ, ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ ๋“ฑ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ‘‰ [๊ธฐ๋ก] ์ด์Šˆ๋ฅผ ์ฃผ์„์„ ํ†ตํ•ด ๊ธฐ๋กํ•˜๊ณ  ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.

 ํฌ๊ฒŒ 3๊ฐ€์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝํ—˜์ƒ ์•„์ง๊นŒ์ง€๋Š” ์ด ์„ธ๊ฐœ๊ฐ€ ๊ฐ€์žฅ ํšจ์œจ์ ์ด๊ณ  ์ง๊ด€์ ์œผ๋กœ ๋‹ค๊ฐ€์˜ค๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 ์ด ์™ธ์— ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž ๋ถ„๊ป˜์„œ ์ž‘์—…ํ•˜์‹  ๋‚ด์šฉ ์ค‘ ์ฑ„ํƒํ•˜๊ณ ์ž ํ•˜๋Š” ๋ถ€๋ถ„

๐Ÿ‘‰ [๋ฒ„์ „] ๋ฒ„์ „์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.

 ๊ทธ ์™ธ์— ๊ณ ๋ฏผ์ค‘์ธ ์ปค๋ฐ‹ ๊ทœ์น™

๐Ÿ‘‰ [๋ฆฌ๋ทฐ] ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค. 

 - ๊ณ ๋ฏผํ•˜๋Š” ์ด์œ ๋Š” [์ˆ˜์ •]์œผ๋กœ๋„ ์ถฉ๋ถ„ํžˆ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™๊ณ , ๊ฐœ๋ฐœ์ ์ธ ์ถ”๊ฐ€์‚ฌํ•ญ์ด ์žˆ์œผ๋ฉด [์ถ”๊ฐ€]์™€ [๋ฆฌ๋ทฐ] ์‚ฌ์ด์—์„œ ์ถฉ๋Œํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” '[๋ฆฌ๋ทฐ] 1์ฐจ ๋ฆฌ๋ทฐ ํ›„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.' ๋กœ ํ•œ ์ค„์˜ ๊ธฐ๋ก์„ ๋‚จ๊ธธ๊นŒ ํ•˜๋Š”๋ฐ, ์ด ๋ถ€๋ถ„๋„ ๊ฒฐ๊ตญ์€ [๊ธฐ๋ก]์—์„œ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. '[์ˆ˜์ •] PR๋ฆฌ๋ทฐ - {๋‚ด์šฉ}' ๋„ ๊ณ ๋ คํ•ด ๋ณด์•˜์œผ๋‚˜, ์ด ๊ฒฝ์šฐ์—๋Š” PR๋ฆฌ๋ทฐ ๋ถ€๋ถ„์„ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  ์ปค๋ฐ‹์„ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์–ด์„œ ์ด ๊ฒฝ์šฐ์—๋Š” ์ปค๋ฐ‹ ๊ธฐ๋ก์„ ์ˆ˜์ •ํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ์˜คํžˆ๋ ค ์ƒ์‚ฐ์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 - ๊ฒฐ๋ก : [๋ฆฌ๋ทฐ] ํ‚ค์›Œ๋“œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

(์‚ฌ์šฉ ์˜ˆ์‹œ)

 - [์ถ”๊ฐ€] notifications์„ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

 - [์ถ”๊ฐ€] bookmarkList์˜ UI๊ตฌ์„ฑ์„ ์™„๋ฃŒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 - [์ถ”๊ฐ€] bookmarkList์—์„œ NoticeWebView ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

 - [์ˆ˜์ •] searchView์˜ engine์˜ access level์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

 - [์ˆ˜์ •] ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ๋ฐ ํŒŒ์ผ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 - [์ˆ˜์ •] ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

 - [์ˆ˜์ •] UserDefaultsManager๋ฅผ app์—์„œ sdk๋กœ ์ด์ „ํ•˜์—ฌ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค.

 

 - [๊ธฐ๋ก] ํ† ๊ธ€๋ง ์ด์Šˆ์— ๋Œ€ํ•œ FIXME๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

 - [๊ธฐ๋ก] ๋””์ž์ด๋„ˆ์˜ ์š”์ฒญ์— ๋”ฐ๋ฅธ UI๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

 - [๊ธฐ๋ก] 1์ฐจ ๋ฆฌ๋ทฐ ์™„๋ฃŒ

 

 

3. Git-flow ์ „๋žต์„ ๊ฐœ์ธ ๋ ˆํฌ์— ์ ์šฉํ•˜๊ณ  ์—ฐ์Šตํ•ด๋ณด๊ธฐ

ํ•ด๋‹น ์—ฐ์Šต์€ ์•„๋ž˜์˜ ๋ ˆํฌ์—์„œ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์•ž์œผ๋กœ SwiftUI๋ฅผ ์ง€์†์ ์œผ๋กœ ๊ณต๋ถ€ํ•˜๊ณ  ์—…๋ฐ์ดํŠธ ํ•  ์˜ˆ์ •์ด๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ๋กœ์จ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ ˆํฌ๋ผ๊ณ  ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค..

https://github.com/lgvv/SwiftUI

 

GitHub - lgvv/SwiftUI: ๐Ÿƒ‍โ™€๏ธ SwiftUI ์—ฐ์Šต ๐Ÿƒ‍โ™€๏ธ

๐Ÿƒ‍โ™€๏ธ SwiftUI ์—ฐ์Šต ๐Ÿƒ‍โ™€๏ธ. Contribute to lgvv/SwiftUI development by creating an account on GitHub.

github.com

 

๐ŸŸ  ์„ธํŒ…๋ฐฉ๋ฒ• - ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋ณด๋‹จ ์†Œ์ŠคํŠธ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. 

 

๐Ÿ‘‰  1. develop branch ๋งŒ๋“ค๊ธฐ 

 - ์†Œ์ŠคํŠธ๋ฆฌ์—์„œ develop์ด๋ž€ ์ด๋ฆ„์œผ๋กœ ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. 

 - ์›๊ฒฉ์— pushํ•ฉ๋‹ˆ๋‹ค.

 - ํ•ด๋‹น ๋ ˆํฌ์—์„œ Settings - Code and automation - Branches์—์„œ Default branch๋ฅผ develop ๋ธŒ๋žœ์น˜๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๋‚˜ํƒ€๋‚œ๋‹ค๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ˆ˜ํ–‰์ด ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ

 


๐Ÿ‘‰ 2. develop ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด ์†Œ์ŠคํŠธ๋ฆฌ์—์„œ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์— ๋Œ€ํ•œ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 - ์†Œ์ŠคํŠธ๋ฆฌ์—์„œ learning/git/flow ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. 

 - ์‹ค์ œ ๊ฐœ๋ฐœ์—์„œ๋Š” ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด๋ผ๋ฉด { feature/์ด๋ฆ„/์ž‘์—… }์œผ๋กœ ํ•˜๊ฒ ์ง€๋งŒ ์ €๋Š” { ํ•™์Šต/์ฃผ์ œ/๋‚ด์šฉ } ์œผ๋กœ Git-flow๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 - ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋งŒ๋“  ํ›„, ์ปค๋ฐ‹์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 - ์ €๋Š” README.md ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ ์ปค๋ฐ‹ 2๊ฐœ๋ฅผ ์ƒ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

Git-flow๋ฅผ ์ถ”๊ฐ€

 

๐Ÿ‘‰  3. Origin Remote Repository์— pushํ•˜๊ณ  PR์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 - ์›๊ฒฉ์—์„œ PR์„ ์˜คํ”ˆํ•˜๊ณ  ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์ง„ํ–‰ํ•œ ํ›„ mergeํ•ฉ๋‹ˆ๋‹ค. mergeํ•œ ๋ธŒ๋žœ์น˜๋Š” ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

 - merge์ดํ›„ ์†Œ์ŠคํŠธ๋ฆฌ๋ฅผ ์—ด์–ด์„œ ํŽ˜์น˜ ํ›„ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋””๋ฒจ๋กญ์ด ์ด๋™ํ–ˆ๋‹ค!

 - ์œ„์™€ ๊ฐ™์€ ๋ชจ์Šต์œผ๋กœ ๋ฐ”๋€ ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 - learning/combine/encoding-decoding์€ 8๋ฒˆ stash ์˜ˆ์ œ๋ฅผ ์œ„ํ•ด ์—ฌ๊ธฐ์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋‹ค์‹œ ๋ณด์•„์ฃผ์„ธ์š”. 

 

๐Ÿ‘‰ 4. rebase์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

rebase ์—ฐ์Šต

์œ„์˜ ์ž‘์—… ์ดํ›„์— ์œ„์™€ ๊ฐ™์€ flow๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. 

์ž‘์—…์˜ ์‹œ๊ฐ„ ์ˆœ์„œ๋Š” rebaseA -> rebaseB -> develop ์ˆœ์„œ์ž…๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์ด์ œ ์šฐ๋ฆฌ๋Š” ๋ฆฌ๋ฒ ์ด์Šค๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ธŒ๋žœ์น˜๋ฅผ ์˜ˆ์˜๊ฒŒ ๋ฐ”๊ฟ”๋ด…์‹œ๋‹ค.

 - ์šฐ์„  ๋ฆฌ๋ฒ ์ด์Šค๋ฅผ ํ•  ์ž‘์—…ํ•œ ๋ธŒ๋žœ์น˜๋กœ ์ฒดํฌ์•„์›ƒํ•ฉ๋‹ˆ๋‹ค.

 - ์šฐ๋ฆฌ๋Š” rebaseA ๋ธŒ๋žœ์น˜๋ฅผ ๋ฆฌ๋ฒ ์ด์Šคํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— rebaseA๋กœ ์ฒดํฌ์•„์›ƒํ•ฉ๋‹ˆ๋‹ค.

 

์ฒดํฌ์•„์›ƒ ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 - ์ดํ›„์— rebaseA๋ฅผ ๋ถ™์ด๊ณ  ์‹ถ์€ ์žฅ์†Œ(develop)๋ฅผ ์šฐํด๋ฆญํ•˜์—ฌ ์žฌ๋ฐฐ์น˜๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

์žฌ๋ฐฐ์น˜ ํ•˜๋ฉด ๋!!

 - ์•„๋งˆ ์ถฉ๋Œ์ด ์—†๋‹ค๋ฉด ์žฌ๋ฐฐ์น˜๊ฐ€ ์ •์ƒ์ ์œผ๋Ÿฌ ์ˆ˜ํ–‰๋˜์–ด์„œ ๊น”๋”ํ•˜๊ฒŒ ๋ธŒ๋žœ์น˜๊ฐ€ ํ•ฉ์ณ์งˆ ๊ฒƒ์ด๋‹ค.

 ํ•˜์ง€๋งŒ ์ถฉ๋Œ์ด ์žˆ๋‹ค๋ฉด ์•„๋ž˜์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋˜๋Š”๋ฐ, ์ถฉ๋Œ ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•ด๋ณด์ž!

์ถฉ๋Œ์ด ๋‚ฌ์Šต๋‹ˆ๋‹ค. README์—์„œ!

 

 - ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ, ๊ฒฐ๊ตญ์€ develop ๋ธŒ๋žœ์น˜์™€ rebaseA๊ฐ€ ๊ฐ™์€ ํŒŒ์ผ์—์„œ ์ˆ˜์ •์„ ๊ฐ€ํ•ด์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์˜€๋‹ค. ๋”ฐ๋ผ์„œ develop ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ•œ rebaseA์™€ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์„ ์‚ญ์ œํ–ˆ๋‹ค.

์ถฉ๋Œ ํ•ด๊ฒฐํ•œ ํ›„ rebaseํ•œ ๋ธŒ๋žœ์น˜

 

- rebase๋ฅผ ์ •์ƒ์ ์œผ๋กœ ๋๋ƒˆ๋Š”๋ฐ, develop๋ณด๋‹ค rebaseA๊ฐ€ ๋” ์•ž์„œ ์žˆ์Šต๋‹ˆ๋‹ค. develop ๋ธŒ๋žœ์น˜๋ฅผ rebaseA์™€ ๋™์ผํ•œ ์œ„์น˜๋กœ ์˜ฎ๊ฒจ ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 - ๋ฐฉ๋ฒ•์€ develop(๋ถ€๋ชจ) ๋ธŒ๋žœ์น˜๋กœ ์ฒดํฌ์•„์›ƒ ํ•œ ๋‹ค์Œ์— rebaseA ๋ธŒ๋žœ์น˜๋ฅผ metge rebaseA into develop์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๋ฆฌ๋ฒ ์ด์Šค์˜ ๋งˆ์ง€๋ง‰ step!!!

 

๐Ÿ‘‰ 5. ๋ฆฌ๋ฒ ์ด์Šค์˜ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ด๋ด…์‹œ๋‹ค. ์ปค๋ฐ‹์ด ํ›จ์”ฌ ๊น”๋”ํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

 

rebase์˜ ๊ฒฐ๊ณผ

๐Ÿ‘‰ 5. ์›๊ฒฉ develop์ด local develop ๋ณด๋‹ค ์•ž์„œ ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๊ฒฐํ•˜๊ธฐ

์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ํ˜„์žฌ Uncommitted changes๊ฐ€ ๋˜์–ด ์žˆ๋Š” ์ด์œ ๋Š” rebase(์žฌ๋ฐฐ์น˜)๋ฅผ ํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ์ถฉ๋Œ์ด ๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 - ์šฐ์„  rebase๋ฅผ ํ†ตํ•ด rebaseB์™€ ๋กœ์ปฌ develop์„ ํ•ฉ์นœ๋‹ค.

์ถฉ๋Œ ํ•ด๊ฒฐ์ค‘!

 

- ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜๊ณ  ๋ณ‘ํ•ฉํ•˜์˜€๋”๋‹ˆ ์œ„์ฒ˜๋Ÿผ ์ˆ˜์ •๋ฉ๋‹ˆ๋‹ค. rebase๋ฅผ ํ–ˆ๊ธฐ์— ๋ธŒ๋žœ์น˜๊ฐ€ ๋‹ค์ˆ˜์—ฌ๋„ ๊น”๋”ํ•˜๊ฒŒ ๊นƒ์„ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถฉ๋Œ ํ•ด๊ฒฐ ์™„๋ฃŒ!

 

๐Ÿ‘‰ 6. Git-flow ์ „๋žต์—์„œ release ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ™•์ธํ•ด ๋ด…๋‹ˆ๋‹ค.

release ๋ธŒ๋žœ์น˜

 - develop ๋ธŒ๋žœ์น˜๋ฅผ ๋‹ค ๋งŒ๋“ค๊ณ  release ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 - ๊ทธ๋Ÿฐ๋ฐ, QA๋„์ค‘ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์›๊ฒฉ์— ํ‘ธ์‹œํ–ˆ๋Š”๋ฐ, ์ปค๋ฐ‹์— ์˜คํƒ€๊ฐ€ ์žˆ์–ด์„œ revertํ›„ ๋‹ค์‹œ pushํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ‘‰ 7. ํƒœ๊ทธ๋ฅผ ์„ค์ •ํ•˜๊ณ  develop๊ณผ release๋ฅผ ์„ธํŒ…ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ๋ฌผ

 

๐Ÿ‘‰ 8. hotfix๋ฅผ ์•Œ์•„๋ด…์‹œ๋‹ค.

 - ์œ„์˜ ์‚ฌ์ง„์ฒ˜๋Ÿฌ develop์ด๋ž‘ main์„ ์˜ฌ๋ฆฌ๊ณ  devleop์„ ์ „๋ถ€ ๋งˆ์นœ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ๊ฐ‘์ž๊ธฐ hotfix๋ฅผ ํ•ด์•ผํ•  ์ผ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

 - hotfix๋ฅผ ํ•ด๋ด…์‹œ๋‹ค.

hotfix์„ฑ๊ณต!

hotfix๋„ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค!

 

๐Ÿ‘‰ 8. stash๋ฅผ ์•Œ์•„๋ด…์‹œ๋‹ค.

์ด๋ ‡๊ฒŒ develop ์‹œ์ ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

 - develop ์‹œ์ ์„ ๋ฐ”๊พธ๋ฉด, develop์ด uncommitted ์ƒํƒœ๋ผ์„œ stash๋ฅผ ์ง„ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 - ์†Œ์ŠคํŠธ๋ฆฌ ์šฐ์ธก ์ƒ๋‹จ์— ์žˆ๋Š” ์Šคํƒœ์‹œ๋ฅผ ํด๋ฆญํ•ด์„œ ์Šคํƒœ์‹œ ํ•ด ๋‘ก๋‹ˆ๋‹ค. (์น˜์›Œ๋‘”๋‹ค.)

 - ๊ทธ ๋‹ค์Œ์— ์žฌ๋ฐฐ์น˜ํ•˜๋ฉด ๋! 

 - ๊ทธ๋ฆฌ๊ณ  ์Šคํƒœ์‹œ ํ•œ ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์™€ ์ค๋‹ˆ๋‹ค.

์Šคํƒœ์‹œ ์‚ฌ์šฉ๋!!

 

์Šคํƒœ์‹œ ์ ์šฉ ์™„๋ฃŒ!

๊ฒฐ๊ณผ

์‚ฌ์‹ค ๋‚ด๊ฐ€ ์กฐ๊ธˆ ์‹ค์ˆ˜ํ•ด์„œ, stash๋งŒ ํ–ˆ์–ด์•ผ ํ•˜๋Š”๋ฐ develop์œผ๋กœ ๊ทธ๋ƒฅ mergeํ–ˆ๋‹ค,, 

ํฌ๊ฒŒ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์•„์„œ ์œ ์ง€ํ•˜๋Š”๋ฐ ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” ์กฐ์‹ฌํ•˜์ž.

 

 

4. git ์ถฉ๋Œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

(2022.06.13) [1.2.2] ๋ฒ„์ „์—์„œ SwiftUI๋กœ ์ฝ”๋“œ๋ฅผ ์ „ํ™˜ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ.

 

์•„์ฃผ ํž˜๋“  ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ๋‹ค. ์šฐ์„  ์™œ ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”์ง€ ์ ˆ์‹คํžˆ ๋Š๋‚€ ์‹œ๊ฐ„์ด์—ˆ๋‹ค. ์Šคํ† ๋ฆฌ๋ณด๋“œ๋Š” ์กฐ๊ธˆ๋งŒ ์›€์ง์—ฌ๋„ ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธฐ๋Š”๋ฐ ๋ณ€ํ™”๋œ ๋ถ€๋ถ„์ด ๊นƒ์— ๋ฐ˜์˜๋˜๊ณ , ์ด๋กœ ์ธํ•ด์„œ ์ถฉ๋Œ์„ ์žก์•„์•ผํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

์ด๋ฒˆ์— ๊ฐ™์ด ์ž‘์—…ํ•˜์‹œ๋Š” ๋ถ„๊ป˜์„œ ๋งŽ์€ ๋„์›€์„ ์ฃผ์…จ๋Š”๋ฐ, ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ๋Š” git์—์„œ ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.

PR์„ ํ†ตํ•ด ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ๋งˆ์นœ ํ›„ Approved๋˜์—ˆ๋‹ค๋ฉด merge๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ดˆ๋ก์ƒ‰ ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™” ๋˜๋Š”๋ฐ, ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์• ๋Š” conflict๋‚œ ๋ถ€๋ถ„์„ ๋ณด์—ฌ์ฃผ๊ณ  ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋ผ๊ณ  ํ•œ๋‹ค.

์ผ๋‹จ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” git์—์„œ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•˜๊ณ , git์—์„œ ์ถฉ๋Œ๋‚˜๋Š” ํŒŒ์ผ์„ ์ฐพ์•„์„œ ์–ด๋–ค ๋ธŒ๋žœ์น˜์˜ ํŒŒ์ผ์„ ์„ ํƒํ• ๊ฑด์ง€ ๊ณ ๋ฅธ ํ›„ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์˜ ์ž‘์—…๋ฌผ์„ ์ง€์šฐ๋ฉด ๋œ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ, ์Šคํ† ๋ฆฌ๋ณด๋“œ์ฒ˜๋Ÿผ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ฒŒ ๊ผฌ์—ฌ์„œ ๋„์ €ํžˆ ์ฐพ๊ธฐ๊ฐ€ ์–ด๋ ค์šธ ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ??

 

์ด ์ƒํ™ฉ์—์„œ๋Š” ๋‚ด๊ฐ€ ์ž‘์—…ํ•œ ์Šคํ† ๋ฆฌ๋ณด๋“œ ํŒŒ์ผ์„ ๋‚ ๋ฆฌ๊ณ  develop ๋ธŒ๋žœ์น˜์˜ ์Šคํ† ๋ฆฌ๋ณด๋“œ ํŒŒ์ผ์„ ์„ ํƒํ•ด์„œ mergeํ–ˆ๋‹ค.

๊ทธ ์ดํ›„ ํ•จ๊ป˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ develop ๋ธŒ๋žœ์น˜๋ฅผ ํ•จ๊ป˜ ๋ณด๋ฉด์„œ ์ˆ˜์ •์‚ฌํ•ญ์„ ๋‹ค์‹œ ์ž‘์„ฑํ•ด pushํ•ด ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ์กฐ์ •ํ–ˆ๋‹ค!!

 

๊ฐ™์ด ์ž‘์—…ํ•˜์‹œ๋Š” ๋ถ„ ๋•๋ถ„์— ์—„์ฒญ๋‚˜๊ฒŒ ์†๋„๊ฐ€ ๋ถ™๊ณ  ๊ฐœ๋ฐœ์— ์žฌ๋ฏธ๋ฅผ ๋” ์žฌ๋ฏธ๋ฅผ ๋ถ™์ด๊ณ  ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌด์—‡๋ณด๋‹ค๋„ ์ด์ œ๋Š” UIKit + RxSwift๋ณด๋‹ค๋Š” SwiftUI + Combine์„ 1์ˆœ์œ„๋กœ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•ด์ง€๊ณ  ๋„ˆ๋ฌด๋‚˜๋„ ์ข‹๋‹ค! 

 

 

 

 

 

 

์—ฌ๊ธฐ๊นŒ์ง€ Kuring์—์„œ ์ ์šฉ๋˜๋Š” Git-flow๋ฅผ ์ „๋ถ€ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ Git์—๋„ ์˜ค๋„ˆ์‹ญ์„ ๊ฐ€์ ธ๊ฐ€ ๋ด…์‹œ๋‹ค.

๋ถ€์กฑํ•œ ๋ถ€๋ถ„์ด๋‚˜ ์ž˜๋ชป๋œ ์ ์€ ์–ธ์ œ๋“ ์ง€ ๋Œ“๊ธ€์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”!

 

 

 

(์ฐธ๊ณ )
https://techblog.woowahan.com/2553/

 

์šฐ๋ฆฐ Git-flow๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์š” | ์šฐ์•„ํ•œํ˜•์ œ๋“ค ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

{{item.name}} ์•ˆ๋…•ํ•˜์„ธ์š”. ์šฐ์•„ํ•œํ˜•์ œ๋“ค ๋ฐฐ๋ฏผํ”„๋ก ํŠธ๊ฐœ๋ฐœํŒ€์—์„œ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์žˆ๋Š” ๋‚˜๋™ํ˜ธ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ €ํฌ ์•ˆ๋“œ๋กœ์ด๋“œ ํŒŒํŠธ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” Git ๋ธŒ๋žœ์น˜ ์ „๋žต์„ ์†Œ๊ฐœํ•˜๋ ค๊ณ  ํ•ฉ

techblog.woowahan.com

https://velog.io/@gwsyl22/git-Github-branch-%EC%9D%B4%EB%A6%84-main%EC%9D%98-%EC%A0%95%EC%B2%B4%EB%8A%94

 

[git] Github branch ์ด๋ฆ„ 'main'์˜ ์ •์ฒด๋Š”?

Github ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๋ฉด ๊ธฐ๋ณธ default branch๊ฐ€ 'master'์ด ์•„๋‹ˆ๋ผ 'main'์ธ ๊ฒƒ์„ ๋ณผ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.๊นƒ๋ฆฐ์ด์ธ ๋‚˜๋Š” ์ด๊ฒŒ ๋ญ์ง€ ใ…‡ใ……ใ…‡? ํ•˜๊ณ  ํ•ญ์ƒ 'master'์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์„œ ๊ด€๋ฆฌํ–ˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ default๊ฐ€ main์œผ๋กœ

velog.io

 

Comments