[๋ฐ๋ธŒ์ฝ”์Šค] Github์œผ๋กœ ํ˜‘์—… ์‹œ์ž‘ํ•˜๊ธฐ(Branch, Pull Request)

2025. 3. 31. 21:31ยท๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL

๐ŸŽ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค๊ธฐ

ํšจ์œจ์ ์ธ ํ˜‘์—…์„ ์œ„ํ•ด์„œ๋Š” ์ผ๊ด€๋œ ๋ธŒ๋žœ์น˜ ๋„ค์ด๋ฐ ๊ทœ์น™์„ ์ง€ํ‚ค๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ํŒ€๋งˆ๋‹ค ์ •ํ•ด์ง„ ๋ฐฉ์‹์ด ์žˆ๊ฒ ์ง€๋งŒ, ๋‹ค์Œ๊ฐ™์€ ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ณดํŽธ์ ์ด๋‹ค.

 

main ๋ธŒ๋žœ์น˜

๐Ÿ‘‰ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๋ฒ„์ „์ด ์ €์žฅ๋˜๋Š” ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜

 

๋ธŒ๋žœ์น˜ ๋ถ„๊ธฐ

์ž‘์—…์˜ ๋ชฉ์ ๊ณผ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ๋ธŒ๋žœ์น˜๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ณ  ๋„ค์ด๋ฐํ•œ๋‹ค. ์ฃผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ์‚ฌ์šฉํ•œ๋‹ค.

  • ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ: feature/๊ธฐ๋Šฅ๋ช… ํ˜•ํƒœ๋กœ ๋ช…๋ช…
  • ์ถœ์‹œ ์ค€๋น„: release-x.x ํ˜•์‹์œผ๋กœ ๋ช…๋ช…
  • ๊ธด๊ธ‰ ์ˆ˜์ •: hotfix-x.x.x ํ˜•์‹์œผ๋กœ ๋ช…๋ช…

๋ธŒ๋žœ์น˜ ๋ณ‘๋ ฌ ์ž‘์—… ์ดํ•ดํ•˜๊ธฐ

๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ๋œ ์ด์œ ๋Š” ๋ณ‘๋ ฌ ์ž‘์—…์„ ์œ„ํ•ด์„œ์ด๋‹ค. ๋ธŒ๋žœ์น˜๋Š” ๋…๋ฆฝ๋œ ์ž‘์—… ๊ณต๊ฐ„์ด๋ฏ€๋กœ, ์„œ๋กœ ๋‹ค๋ฅธ ์ž‘์—…์„ ๋™์‹œ์— ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ธŒ๋žœ์น˜ ์‹คํ—˜

  1. feature/signup ๋ธŒ๋žœ์น˜์—์„œ test.txt ํŒŒ์ผ์„ ์ถ”๊ฐ€
  2. feature/login ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜
  3. feature/login ๋ธŒ๋žœ์น˜์—์„œ๋„ test.txt ํŒŒ์ผ์ด modified ์ƒํƒœ๋กœ ํ‘œ์‹œ

 

๐Ÿ‘‰ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๊ณต์œ ๋˜๋Š” ์ด์œ ๋Š” ์•„์ง ์ปค๋ฐ‹์„ ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ

 

 

๋ธŒ๋žœ์น˜ ๋…๋ฆฝ์„ฑ๊ณผ ์ปค๋ฐ‹

๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค๊ณ  ๋ฐ”๋กœ ๋ณ‘๋ ฌ ์ž‘์—…์ด ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์ปค๋ฐ‹์„ ํ•œ ์ˆœ๊ฐ„๋ถ€ํ„ฐ, ๋ธŒ๋žœ์น˜๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

 

  1. feature/signup ๋ธŒ๋žœ์น˜์—์„œ ์ปค๋ฐ‹
  2. feature/login ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜ํ•˜์—ฌ test.txt ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ
  3. feature/login ๋ธŒ๋žœ์น˜์—๋Š” test.txt ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ์—๋„ ๊ธฐ๋ก์ด ์—†๋‹ค.

feature/signup ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ
feature/login

๐Ÿ‘‰ ๋ธŒ๋žœ์น˜ ๋…๋ฆฝ์„ฑ์€ ์ปค๋ฐ‹ ๊ธฐ์ค€์œผ๋กœ ๊ฒฐ์ •

 

์ฃผ์˜์‚ฌํ•ญ

์ปค๋ฐ‹ํ•  ๋•Œ๋Š” ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ๋ธŒ๋žœ์น˜๋ฅผ ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•˜๊ธฐ!

 

Github ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ(CLI)

ํ˜‘์—…์„ ์œ„ํ•ด์„œ๋Š” ๋กœ์ปฌ์—์„œ ์ž‘์—…ํ•œ ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์—๋„ ๊ณต์œ ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.

 

์›๊ฒฉ ๋ธŒ๋žœ์น˜ ๋ชฉ๋ก ํ™•์ธ

git branch -r

 

๋กœ์ปฌ ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์— ํ‘ธ์‹œ

git push origin ๋ธŒ๋žœ์น˜๋ช…

 

๋กœ์ปฌ ๋ธŒ๋žœ์น˜๋ฅผ ํ‘ธ์‹œํ•˜๋ฉด, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ํ™•์ธํ•˜๊ณ  ์ž‘์—…๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Github ๋ธŒ๋žœ์น˜ ๋ชฉ๋ก์— local ๋ธŒ๋žœ์น˜์™€ ๋™์ผํ•œ ๋ธŒ๋žœ์น˜๋“ค์ด ์ƒ์„ฑ๋จ


๐ŸŽGit Branch Merge ์ „๋žต

Fast Forward

๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ๋ณ‘ํ•ฉ ๋ฐฉ์‹์œผ๋กœ, ํ•œ ์ชฝ ๋ธŒ๋žœ์น˜์—๋งŒ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

  • ๋ณ„๋„์˜ ๋ณ‘ํ•ฉ ์ปค๋ฐ‹์ด ์ƒ์„ฑ๋˜์ง€ ์•Š๊ณ  ๋ธŒ๋žœ์น˜ ํฌ์ธํ„ฐ๋งŒ ์ด๋™ํ•œ๋‹ค.
  • ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ๋‹จ์ˆœํ•˜๊ณ  ์ง์„ ์ ์œผ๋กœ ์œ ์ง€๋˜์–ด ๋‹จ์ˆœํ•˜๋‹ค.
  • ํ˜‘์—… ์‹œ์—๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋ธŒ๋žœ์น˜ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋ช…ํ™•ํžˆ ๋‚จ๊ธฐ๊ธฐ ์–ด๋ ค์šด ๋ฐฉ์‹์ด๋‹ค.

3Ways

๋‘ ๋ธŒ๋žœ์น˜ ๋ชจ๋‘์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

  • ๋ณ‘ํ•ฉ ์‹œ, Git์ด A์™€ B์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋น„๊ตํ•˜์—ฌ ์ •๋ฆฌํ•œ ํ›„ ๋ณ‘ํ•ฉ ์ปค๋ฐ‹์„ ์ƒ์„ฑํ•œ๋‹ค.
  • ๋…๋ฆฝ์ ์ธ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ช…ํ™•ํ•œ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ ์œ ์ง€๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์ถฉ๋Œ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.


๐ŸŽPull Request์™€ Merge

์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  pushํ•˜์˜€๋‹ค๋ฉด ๊นƒํ—™ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ํŽ˜์ด์ง€์—์„œ Pull Request๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Pull Request๋ž€?

Github์—์„œ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฆฌ๋ทฐ ์š”์ฒญํ•˜๋Š” ๊ธฐ๋Šฅ

 

Pull Request์˜ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ์ฝ”๋“œ ๋ฆฌ๋ทฐ: ํŒ€์›๋“ค์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฒ€ํ† ํ•˜๊ณ  ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. 
  • ์ž๋™ํ™” ํ…Œ์ŠคํŠธ: CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ† ๋ก : ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋…ผ์˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

Pull Request ์ž‘์„ฑ๋ฒ•

  • ์ฝ”๋“œ ๋ณ€๊ฒฝํ•จ~ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•จ~ -> ์ ˆ๋Œ€ xxxxxx
  • ํ’€๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋Š” ๋ช…ํ™•ํ•œ ์ œ๋ชฉ๊ณผ, ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ์„ค๋ช…์„ ์ž‘์„ฑํ•˜์ž
## ๋ณ€๊ฒฝ ์‚ฌํ•ญ
- ๋ณ€๊ฒฝ๋œ ๊ธฐ๋Šฅ์ด๋‚˜ ๋ฒ„๊ทธ ์ˆ˜์ •์— ๋Œ€ํ•œ ์„ค๋ช…

## ๋ณ€๊ฒฝ ์ด์œ 
- ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ์ด์œ ์™€ ๋ฐฐ๊ฒฝ

## ํ…Œ์ŠคํŠธ
- ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•๊ณผ ๊ฒฐ๊ณผ

## ๊ด€๋ จ ์ด์Šˆ
- ๊ด€๋ จ๋œ ์ด์Šˆ ๋ฒˆํ˜ธ๋‚˜ ๋งํฌ

 

Merge๊ฐ€ ๋จธ์ง€

๋‘ ๊ฐœ์˜ ๋ธŒ๋žœ์น˜๋ฅผ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๋Š” ์ž‘์—…
  • Pull Request๋ฅผ ์˜คํ”ˆํ•˜๋ฉด, ์ž๋™ ๋จธ์ง€ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ์•Œ๋ ค์ค€๋‹ค. 
  • ๋จธ์ง€๋ฅผ ํ•  ๋•Œ๋Š” ๋ณ‘ํ•ฉ ์ปค๋ฐ‹(Merge Commit)์ด ์ƒ์„ฑ๋œ๋‹ค.
  • ๋‘ ๋ธŒ๋žœ์น˜ ๊ฐ„์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ถฉ๋Œํ•  ๊ฒฝ์šฐ(Merge conflict), ์ˆ˜๋™์œผ๋กœ ํ•ด๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.

์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์—ฌ ์ž๋™์œผ๋กœ ๋จธ์ง€ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ
์ž๋™์œผ๋กœ ๋จธ์ง€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ

 

Merge Conflict ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

Merge Conflict๋Š” ๋‘ ๋ธŒ๋žœ์น˜์—์„œ ๋™์ผํ•œ ํŒŒ์ผ์˜ ๊ฐ™์€ ๋ถ€๋ถ„์ด ์ˆ˜์ •๋˜์—ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

 

๊ฐ„๋‹จํ•œ Merge Conflict๋Š” ์›น ์—๋””ํ„ฐ์—์„œ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. <<<<<<<, =======, >>>>>>> ํ‘œ์‹œ๋œ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•œ๋‹ค.

 

Merge ํ›„ ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ

๋จธ์ง€ ํ›„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ธŒ๋žœ์น˜๋Š” ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๋ณต๊ตฌ ๊ฐ€๋Šฅํ•˜๋‹ˆ ๋ธŒ๋žœ์น˜ ์‚ญ์ œ๋ฅผ ์Šต๊ด€ํ™”ํ•˜์ž๐Ÿ’ก

 

'๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค > TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐ๋ธŒ์ฝ”์Šค] ์›น ํŽ˜์ด์ง€์— ์ƒ๋ช… ๋ถˆ์–ด๋„ฃ๊ธฐ(CSS, Javascript)  (0) 2025.04.02
[๋ฐ๋ธŒ์ฝ”์Šค] ์›น ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ฒซ ๊ฑธ์Œ(์›น ๊ตฌ์กฐ, HTML)  (0) 2025.04.01
[๋ฐ๋ธŒ์ฝ”์Šค] Github ์‹œ์ž‘ํ•˜๊ธฐ(์ €๋Š” ์ด ๊นƒํ—™์„ ์จ๋ดค์–ด์š”!!!)  (0) 2025.03.30
[๋ฐ๋ธŒ์ฝ”์Šค] Git๊ณผ Github์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฒ„์ „๊ด€๋ฆฌ(ft.์ฃผ์š” ๋ช…๋ น์–ด)  (0) 2025.03.29
[๋ฐ๋ธŒ์ฝ”์Šค] ๋ฆฌ๋“œ๋ฏธ์™€ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ  (2) 2025.03.28
'๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐ๋ธŒ์ฝ”์Šค] ์›น ํŽ˜์ด์ง€์— ์ƒ๋ช… ๋ถˆ์–ด๋„ฃ๊ธฐ(CSS, Javascript)
  • [๋ฐ๋ธŒ์ฝ”์Šค] ์›น ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ฒซ ๊ฑธ์Œ(์›น ๊ตฌ์กฐ, HTML)
  • [๋ฐ๋ธŒ์ฝ”์Šค] Github ์‹œ์ž‘ํ•˜๊ธฐ(์ €๋Š” ์ด ๊นƒํ—™์„ ์จ๋ดค์–ด์š”!!!)
  • [๋ฐ๋ธŒ์ฝ”์Šค] Git๊ณผ Github์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฒ„์ „๊ด€๋ฆฌ(ft.์ฃผ์š” ๋ช…๋ น์–ด)
ํ‚ํ‚์ž‰
ํ‚ํ‚์ž‰
๋ฟŒ๋ก ํŠธ ๊ฐœ๋ฐœ์ž(์ง€๋ง์ƒ)์˜ ํ’€์Šคํƒ ๊ฐœ๋ฐœ์ž ๋„์ „๊ธฐ
  • ํ‚ํ‚์ž‰
    monicx.dev
    ํ‚ํ‚์ž‰
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (173)
      • ๐Ÿ–ฅ๏ธdevelop (2)
        • Github (2)
        • Frontend (4)
        • Backend (5)
        • Mobile (0)
        • CS (0)
        • Three.js (0)
        • Docker (2)
      • ๐Ÿ“šbook (9)
        • npm Deep Dive (4)
      • ๐Ÿ“•review (33)
        • ์ฑ… (24)
        • ํ–‰์‚ฌ (1)
        • ํšŒ๊ณ  (2)
      • โญproject (5)
        • petiary (2)
        • ๆšŽ่ฉ  (0)
        • ์ธํ„ด (2)
      • ๐Ÿ˜ถ‍๐ŸŒซ๏ธalgorithm (0)
      • ๐Ÿ’กtips (1)
      • ๐Ÿ˜Ždaily (10)
      • ๐Ÿ•น๏ธgame (0)
      • ๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค (87)
        • TIL (61)
        • ํ”„๋กœ์ ํŠธ (18)
        • ํšŒ๊ณ  (8)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
  • ๋งํฌ

    • ๋ฒจ๋กœ๊ทธ
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
ํ‚ํ‚์ž‰
[๋ฐ๋ธŒ์ฝ”์Šค] Github์œผ๋กœ ํ˜‘์—… ์‹œ์ž‘ํ•˜๊ธฐ(Branch, Pull Request)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”