์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป Git&Github๋ฅผ ์ด์šฉํ•œ ํ˜‘์—… ๋ฐฉ๋ฒ•

๐ŸŽ iOS/Git&GitHub

by AHN.Jihyeon 2024. 7. 11. 20:25

๋ณธ๋ฌธ

โœ… ์ดˆ๊ธฐ ์„ธํŒ…

1. ๋กœ์ปฌ Xcode๋กœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ 

2. ๋กœ์ปฌ(๋‚ด ์ปดํ“จํ„ฐ)๊ณผ ์›๊ฒฉ(๊นƒํ—ˆ๋ธŒ)์—์„œ ์ƒˆ๋กœ์šด ๋ ˆํฌ์ง€ํ† ๋ฆฌ(์ €์žฅ์†Œ) ์ƒ์„ฑ

3. ์›๊ฒฉ ๋ ˆํฌ์— ํŒ€์›๋“ค์„ Collaborator๋กœ ์ถ”๊ฐ€ 

4. ํŒ€์›๋“ค์€ git clone์œผ๋กœ ๋ ˆํฌ ๊ฐ€์ ธ์˜ค๊ธฐ 

- clone : ์›๊ฒฉ(๊นƒํ—ˆ๋ธŒ) ์ €์žฅ์†Œ๋ฅผ ๋‚ด ์ปดํ“จํ„ฐ์— ๋ณต์‚ฌํ•ด์˜ค๊ธฐ 

 

 

โœ… ๋ณธ๊ฒฉ์ ์ธ ์ง„ํ–‰ ๊ณผ์ •

5. ๊นƒํ—ˆ๋ธŒ์—์„œ ์ด์Šˆ ๋“ฑ๋ก ํ›„ ํ•ด๋‹น ์ด์Šˆ์— ๋Œ€ํ•œ ์ž‘์—…์„ ์ง„ํ–‰ํ•  ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ  

  • ๋ธŒ๋žœ์น˜๋ช… : feature/ ์ด์Šˆ๋ฒˆํ˜ธ - ์ด์Šˆ ๋‚ด์šฉ

6. ๋กœ์ปฌ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—… ํ›„ ์ปค๋ฐ‹ 

  • ํŒ€์›์€ main ๋ธŒ๋žœ์น˜์—์„œ ๊ฐ์ž ๋กœ์ปฌ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑ
  • ์ž‘์—…ํ•˜๋ฉด์„œ ์ปค๋ฐ‹์„ ์˜ฌ๋ฆฌ๊ณ , ์›๊ฒฉ ์ €์žฅ์†Œ์— ํ‘ธ์‹œ(๋กœ์ปฌ ๋ธŒ๋žœ์น˜๋ช…๊ณผ ๊ฐ™์€ ์›๊ฒฉ ๋ธŒ๋žœ์น˜๋ช…์œผ๋กœ ์˜ฌ๋ ค์•ผ ํ•จ)
    • - add: ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์ž‘์—…ํ•œ ํŒŒ์ผ๋“ค์„ ์Šคํ…Œ์ด์ง€์— ์ถ”๊ฐ€
    • - commit: ์Šคํ…Œ์ด์ง€์— ์˜ฌ๋ผ์˜จ ํŒŒ์ผ๋“ค์„ ๊ฐ€์ง€๊ณ  ๋‚ด ์ปดํ“จํ„ฐ์— ์ €์žฅ (์„ธ์ด๋ธŒ์™€ ๊ฐ™๋‹ค.)

 

7. ๋กœ์ปฌ ๋ธŒ๋žœ์น˜์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์›๊ฒฉ ์ €์žฅ์†Œ์— ํ‘ธ์‰ฌ

  • push origin feauture/์ด์Šˆ๋ฒˆํ˜ธ-์ด์Šˆ๋‚ด์šฉ
  • - push: ์ปค๋ฐ‹๋“ค์„ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์—…๋กœ๋“œ

 

8. ๊นƒํ—ˆ๋ธŒ์—์„œ ํ‘ธ์‰ฌ๋œ ๋ธŒ๋žœ์น˜๋ฅผ ์„ ํƒํ•˜๊ณ , main ๋ธŒ๋žœ์น˜๋กœ ๊ด€๋ จ ์ด์Šˆ์™€ ํ•จ๊ป˜ PR ์ƒ์„ฑ

9. ํŒ€์›๋“ค์ด PR์„ ๋ฆฌ๋ทฐํ•˜๊ณ  ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•ด ์ถ”๊ฐ€ ์ปค๋ฐ‹ 

10. ๋ชจ๋“  ๋ฆฌ๋ทฐ ์™„๋ฃŒ ํ›„ PR์„ main ๋ธŒ๋žœ์น˜์— ๋จธ์ง€

- PR์„ ๋จธ์ง€ํ•˜๊ธฐ ์ „์— ์›๊ฒฉ main ๋ธŒ๋žœ์น˜์˜ ์ตœ์‹  ์ปค๋ฐ‹์„ ๋กœ์ปฌ feature ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ•ด ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•œ๋‹ค. 

11. ๋จธ์ง€๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ์ž‘์—…ํ•œ ์›๊ฒฉ๊ณผ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜ ์‚ญ์ œ 

 

 

 

๋‹ค๋ฅธ ๋ฐฉ๋ฒ•)

ํŒ€์žฅ ์ €์žฅ์†Œ(๋ ˆํฌ์ง€ํ† ๋ฆฌ)๋ฅผ fork ํ•ด์˜จ๋‹ค. 

๋กœ์ปฌ์—์„œ ์ฝ”๋“œ ์ˆ˜์ • 

fork ๋– ์˜จ ๋ณธ์ธ ๋ ˆํฌ(๊นƒํ—ˆ๋ธŒ)์— push

ํŒ€์žฅ ๋ ˆํฌ์˜ ์ง€์ • ๋ธŒ๋žœ์น˜์— PR(๊นƒํ—ˆ๋ธŒ) 

-> able to merge๋ผ๋ฉด, ํŒ€์žฅ์ธ ๋ณธ์ธ ๋ ˆํฌ์—์„œ Merge ์ง„ํ–‰ 

-> can't automaically merge(conflict) ๋ผ๋ฉด, ์ตœ์‹ ํ™”๋œ ํŒ€์žฅ์˜ ๋ ˆํฌ๋‚˜ ๋ธŒ๋žœ์น˜๋ฅผ ํŒ€์›์˜ ๋กœ์ปฌ์— pull์„ ๋ฐ›์•„์™€์„œ ๋กœ์ปฌ์—์„œ ์ˆ˜์ •ํ•œ๋‹ค.

๋ณธ์ธ ๋ธŒ๋žœ์น˜๋‚˜ ๋ ˆํฌ์— push -> merge ์ง„ํ–‰ 

 

 


๐Ÿšจ ์ถฉ๋Œ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ๋‹จ๊ณ„๋ณ„ ์ฃผ์˜์‚ฌํ•ญ

์ปค๋ฐ‹

์ž‘์€ ๋‹จ์œ„๋กœ ์ž์ฃผ ์ปค๋ฐ‹ํ•œ๋‹ค. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋Š” ๋ช…ํ™•ํ•˜๊ณ  ์˜๋ฏธ ์žˆ๊ฒŒ ์ž‘์„ฑ

 

 

ํ‘ธ์‰ฌ

๋กœ์ปฌ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ์›๊ฒฉ ๋ธŒ๋žœ์น˜๋กœ ํ‘ธ์‰ฌ

ํ‘ธ์‰ฌํ•˜๊ธฐ ์ „์— ํ•ญ์ƒ ์ตœ์‹  ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•  ๊ฒƒ. 
git pull origin main  # ์ตœ์‹  ์ƒํƒœ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ


→ Xcode์—์„œ Fetch ์˜ต์…˜์„ ์ด์šฉํ•ด ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ์ตœ์‹  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฐ€์ ธ์˜จ๋‹ค. 

 

 

ํ’€

๋‹ค๋ฅธ ํŒ€์›์ด ํ‘ธ์‹œํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋กœ์ปฌ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
git pull origin main

 

์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ถฉ๋Œ ๋ถ€๋ถ„์„ ํ™•์ธํ•˜๊ณ  ํ•ด๊ฒฐํ•œ ํ›„, ์ปค๋ฐ‹



๋จธ์ง€

์ž‘์—…์ด ์™„๋ฃŒ๋œ ๋ธŒ๋žœ์น˜๋ฅผ PR์„ ํ†ตํ•ด ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๊ฑฐ์นœ ํ›„ main ๋ธŒ๋žœ์น˜์— ๋จธ์ง€ํ•œ๋‹ค.

main ๋ธŒ๋žœ์น˜๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ •๊ธฐ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ํŒ€์›๋“ค๊ณผ ๊ณต์œ ํ•  ๊ฒƒ.

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ