๊ณต๋ถ€๊ธฐ๋ก/๊นƒ & ๋ฆฌ๋ˆ…์Šค

Git & Github ์‹ค๋ฌด ํ™œ์šฉ ์™„๋ฒฝ ๊ฐ€์ด๋“œ part2. (๋ธŒ๋žœ์น˜์™€ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•)

kaizen_bh 2024. 11. 2. 21:54

 

 

์ด์ „ part1์—์„œ๋Š” ๊นƒ์˜ ๊ธฐ๋ณธ์ ์ธ ์†Œ๊ฐœ์™€ add๋กœ ์Šคํ…Œ์ด์ง€ ์˜ฌ๋ฆฌ๊ณ  ์ปค๋ฐ‹ํ•˜๋Š” ๋“ฑ์˜ ๊ธฐ์ดˆ ๋ช…๋ น์–ด๋ฅผ ๋‹ค๋ฃจ์—ˆ๋‹ค.

 

์ด๋ฒˆ ๋‚ด์šฉ์—์„œ๋Š” 

์„น์…˜ 6 : ๋ธŒ๋žœ์น˜๋กœ ์ž‘์—…ํ•˜๊ธฐ

์„น์…˜ 7 : ๋ธŒ๋Ÿฐ์น˜ ๋ณ‘ํ•ฉํ•˜๊ธฐ

 

๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ๋ณ‘ํ•ฉ๊ณผ ์ถฉ๋Œ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.

 

 

 


 

 

 

์„น์…˜ 6 : ๋ธŒ๋žœ์น˜๋กœ ์ž‘์—…ํ•˜๊ธฐ

๋ธŒ๋žœ์น˜๋ž€?

 

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

โ‡๏ธ   ๋ธŒ๋žœ์น˜๋Š” ๊นƒ์˜ ๊ฐ€์žฅ ํŠน์ง•์ ์ธ ๊ธฐ๋Šฅ์ด๋ฉฐ ํ”„๋กœ์ ํŠธ์—์„œ ์ผ์ข…์˜ ํƒ€์ž„๋ผ์ธ ๊ฐ™์€ ๊ฒƒ์ด๋‹ค.
โ‡๏ธ   ํ•œ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ•œ ๋‚ด์šฉ์€ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์ด๋‹ค.

 

ํ•˜๋‚˜์˜ ๋ ˆํฌ์—์„œ ๋‹ค์–‘ํ•œ ๋ธŒ๋žœ์น˜๋กœ ๋ป—์–ด๋‚˜๊ฐ€๊ณ  ํ•ฉ์ณ์ง€๊ธฐ๋„ ํ•œ๋‹ค

 

 

 


 

 

 

๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜

 

master ๋ธŒ๋žœ์น˜.

์ƒˆ ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค์—ˆ์„ ๋•Œ ์ƒ๊ธฐ๋Š” ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์œผ๋กœ git init ๋ช…๋ น์„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์ž๋™์ ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ธŒ๋žœ์น˜๊ฐ€ ๋ฐ”๋กœ master์ด๋‹ค.

userpc@DESKTOP-UQ5OHLV MINGW64 ~/Downloads/git_study/test (master)
$ git status
On branch master
nothing to commit, working tree clean

 

 

๋ณดํ†ต ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋ฅผ ๊ณต์‹์ ์ธ ์ž‘์—… ์ฝ”๋“œ ๋ฒ ์ด์Šค๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ•˜๊ณ  ์ปค๋ฐ‹ํ•ด์„œ ํ…Œ์ŠคํŠธํ•ด์„œ ๋งŒ์•ฝ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋ฉด ๋งˆ์Šคํ„ฐ๋กœ ๋Œ์•„์™€ ๊ทธ๊ฒƒ๋“ค์„ ๊ฒฐํ•ฉํ•œ๋‹ค.

 

++ 2020๋…„ ๊นƒํ—™์—์„œ ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜๋ช…์„ master → main์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค๊ณ  ํ–ˆ์œผ๋‚˜ ์ด๋Š” ๊นƒํ—™์—์„œ๋งŒ ์ ์šฉ๋˜๋ฉฐ ์‹ค์ œ ๋กœ์ปฌ ๊นƒ์—์„œ๋Š” ์—ฌ์ „ํžˆ ๋งˆ์Šคํ„ฐ๋กœ ํ‘œ๊ธฐ๋˜์–ด ์žˆ๋‹ค.

 

 


 

HEAD

๋ธŒ๋žœ์น˜ ์ƒ์„ฑ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ ์ „์— ์•Œ์•„์•ผํ•  ๊ฐœ๋… ํ•œ๊ฐ€์ง€. ๋ฐ”๋กœ HEAD์ด๋‹ค.

 

 

git log์—์„œ HEAD -> master ๋กœ ํ‘œ์‹œ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค

ํ—ค๋“œ๋Š” ๊นƒ ์šฉ์–ด ์ค‘ ํ•˜๋‚˜๋กœ ์ €์žฅ์†Œ์—์„œ ํ˜„์žฌ ์šฐ๋ฆฌ์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ์ด๋ฉฐ ๋ธŒ๋žœ์น˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

ํ—ค๋“œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ณด๊ฑฐ๋‚˜ ํ™•์ธํ•˜๊ณ  ์žˆ๋Š” ํ˜„์žฌ ์œ„์น˜๋ฅผ ๋งํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์–ธ์ œ๋‚˜ master ๋ธŒ๋žœ์น˜์—์„œ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ปค๋ฐ‹ํ•œ ๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

ํ—ค๋“œ๋Š” ๋ธŒ๋žœ์น˜ ํฌ์ธํ„ฐ์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค ํฌ์ธํ„ฐ์ด๊ณ  ๋ธŒ๋žœ์น˜ ํฌ์ธํ„ฐ๋Š” ํ˜„์žฌ ๋ธŒ๋žœ์น˜๊ฐ€ ์žˆ๋Š” ์œ„์น˜์ด๋‹ค. ์ฑ…์˜ ๋ถ๋งˆํฌ์™€ ๊ฐ™๋‹ค.

 

 

๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ Fitz, Ethel ๋ธŒ๋žœ์น˜๋กœ ์˜ฎ๊ธฐ๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ๋ธŒ๋žœ์น˜์˜ ํ—ค๋“œ๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ-๋งˆ์ง€๋ง‰์— ์ปค๋ฐ‹ํ•œ ๊ณณ์ด ํ—ค๋“œ๊ฐ€ ๋œ๋‹ค.

 

 

 


 

 

Git Branch

git branch : ํ•ด๋‹น ์ €์žฅ์†Œ์˜ ๋ธŒ๋žœ์น˜๋“ค์„ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด. ํ˜„์žฌ ์กด์žฌํ•˜๋Š” ๋ธŒ๋žœ์น˜ ๋ชฉ๋ก๋งŒ ๋ณด์—ฌ์ค€๋‹ค

 

ํ˜„์žฌ๋Š” ๋ธŒ๋žœ์น˜๊ฐ€ ๋งˆ์Šคํ„ฐ ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉฐ, ํ˜„์žฌ ์œ„์น˜ํ•œ ๋ธŒ๋žœ์น˜ ์™ผ์ชฝ์— *๋กœ ํ‘œ์‹œํ•ด์ค€๋‹ค

 

 


 

 

๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ์ „ํ™˜

 

๐Ÿ”ธ git branch <branch-name> : ์ƒˆ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์€ ๊ณต๋ฐฑ์„ ํฌํ•จํ•ด์„  ์•ˆ๋œ๋‹ค.

๐Ÿ”ธ git switch <branch-name> : ๋ธŒ๋žœ์น˜ ์ด๋™.

 

์ƒˆ๋กœ ์ƒ์„ฑํ•œ ๋ธŒ๋žœ์น˜์—์„œ ์ปค๋ฐ‹ํ•œ ๋‚ด์šฉ๋“ค์€ master ๋ธŒ๋žœ์น˜์— ์ ์šฉ๋˜์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์ด๋‹ค

 

 

 


 

 

 

 

Git Checkout vs Git Switch

๐Ÿ”ธ git checkout <branch-name> : git switch <branch-name> ๋ช…๋ น๊ณผ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์œผ๋กœ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ์ž‘์—… ํŠธ๋ฆฌ๋ฅผ ๋ณต์›ํ•˜๊ธฐ ์œ„ํ•ด ์ด ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ”ธ git switch -c <branch-name> : ๋ธŒ๋žœ์น˜๋ฅผ ์ด๋™ํ•˜๋ ค๋ฉด ๋จผ์ € ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•˜์ง€๋งŒ -c ์˜ต๋ จ์„ ํ†ตํ•ด ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋™ํ•˜๋Š” ์ž‘์—…์„ ํ•œ๋ฒˆ์— ํ•  ์ˆ˜ ์žˆ๋‹ค. -c ์˜ต์…˜์„ ๋„ฃ์ง€ ์•Š๊ณ  ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑ ๋ฐ ์ด๋™ํ•˜๋ ค๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ์˜ต์…˜์„ ์ฃผ์˜ํ•  ๊ฒƒ.

git checkout -b <branch-name> ํ•ด๋‹น ๋ช…๋ น์–ด๋„ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ์ด๋™๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

 

์Šคํ…Œ์ด์ง•๋˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์œผ๋กœ ๋ธŒ๋žœ์น˜ ์ „ํ™˜ํ•˜๊ธฐ?

 

๋™์ผํ•œ ํŒŒ์ผ์— ๋Œ€ํ•ด ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•˜๋ ค๋ฉด -

 

๋ธŒ๋žœ์น˜๋ฅผ ์ด๋™ํ•˜๊ธฐ ์ „์— ์ปค๋ฐ‹์ด๋‚˜ ์Šคํƒœ์‹œํ•˜๋ผ๊ณ  ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค. ์ฆ‰ ์ปค๋ฐ‹๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์‚ฌ๋ผ์งˆ ๊ฒƒ์ด๋ผ๊ณ  ๊ฒฝ๊ณ ํ•˜๊ณ  ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋™์ผํ•œ ํŒŒ์ผ์ด ์•„๋‹Œ ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ ๋’ค ๋ธŒ๋žœ์น˜๋ฅผ ์ด๋™ํ•˜๋ฉด - ์œ„์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋œจ์ง€ ์•Š๊ณ  ์ถ”์ ๋˜์ง€ ์•Š์€ ํŒŒ์ผ์ด ์žˆ๊ณ  ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์•˜๋‹ค๊ณ  ๋œฌ๋‹ค.

 

 

 

๋ธŒ๋žœ์น˜ ์‚ญ์ œ ๋ฐ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ

๐Ÿ”ธ git branch -d <branch-name> : ๋ธŒ๋žœ์น˜ ์‚ญ์ œ. ๋ธŒ๋žœ์น˜๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ์ž๊ธฐ ์ž์‹ ์˜ ์œ„์น˜์—์„œ๋Š” ์‚ญ์ œํ•  ์ˆ˜ ์—†๋‹ค. ์ด๊ฑด ํ„ฐ๋ฏธ๋„์—์„œ rm์œผ๋กœ ๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๋‹ค.

๋ธŒ๋žœ์น˜ ์‚ญ์ œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ž„์˜์˜ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‚ญ์ œํ•ด๋ดค์„ ๋•Œ ์ฒซ๋ฒˆ์จฐ๋Š” ์œ„์น˜์— ๋Œ€ํ•œ ์—๋Ÿฌ๊ฐ€, ๋‘ ๋ฒˆ์งธ๋Š” ์™„์ „ํžˆ ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ๋œฌ๋‹ค.

 

userpc@DESKTOP-UQ5OHLV MINGW64 ~/Downloads/git_study/roadtrip (deletme)
$ git branch -d deletme
error: cannot delete branch 'deletme' used by worktree at 'C:/Users/userpc/Downloads/git_study/roadtrip'

---

userpc@DESKTOP-UQ5OHLV MINGW64 ~/Downloads/git_study/roadtrip (master)
$ git branch -d deletme
error: the branch 'deletme' is not fully merged
hint: If you are sure you want to delete it, run 'git branch -D deletme'
hint: Disable this message with "git config advice.forceDeleteBranch false"

 

๋‘ ๋ฒˆ์งธ์˜ ๊ฒฝ์šฐ ๋Œ€๋ถ„์ž -D ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด ๋ณ‘ํ•ฉ ์ƒํƒœ ์ƒ๊ด€์—†์ด ๋ธŒ๋žœ์น˜ ๊ฐ•์ œ ์‚ญ์ œ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ์ œ์˜ ๊ฒฝ์šฐ ๋ณ‘ํ•ฉ๋œ ๋‚ด์šฉ์ด ์—†์œผ๋ฏ€๋กœ ๊ฐ•์ œ ์‚ญ์ œํ•œ๋‹ค.

 

 

๐Ÿ”ธ git branch -m <another branch-name> 

 

userpc@DESKTOP-UQ5OHLV MINGW64 ~/Downloads/git_study/roadtrip (master)
$ git switch recentish-music
Switched to branch 'recentish-music'

userpc@DESKTOP-UQ5OHLV MINGW64 ~/Downloads/git_study/roadtrip (recentish-music)
$ git branch -m 2000s

userpc@DESKTOP-UQ5OHLV MINGW64 ~/Downloads/git_study/roadtrip (2000s)
$ git status
On branch 2000s
nothing to commit, working tree clean

 

๋ธŒ๋žœ์น˜ ์ด๋ฆ„ ๋ณ€๊ฒฝ์€ ์‚ญ์ œ์™€ ๋‹ฌ๋ฆฌ ํ•ด๋‹น ๋ธŒ๋žœ์น˜์— ์œ„์น˜ํ•ด์•ผํ•œ๋‹ค. ํ„ฐ๋ฏธ๋„์—์„œ move๋กœ ํŒŒ์ผ๋ช…์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค.

 

 

 

 

 

 


 

์„น์…˜ 7 : ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉํ•˜๊ธฐ

๋ณ‘ํ•ฉ์€ ๋ธŒ๋žœ์น˜ ์ž‘์—…์˜ ํ•„์ˆ˜์ ์ธ ํŠน์ง• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๋ณ‘ํ•ฉ์‹œ git merge ๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

master ๋ธŒ๋žœ์น˜์—์„œ๋Š” ์–ด๋–ค ์‹คํ—˜๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋‹ค๋ฅธ ํ”ผ์ฒ˜ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ›„ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณ ์ ์ ˆํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋˜๋ฉด master ๋ธŒ๋žœ์น˜์— ํ•ด๋‹น ์ž‘์—…์„ ๋ณ‘ํ•ฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

 

1. ๋ณ‘ํ•ฉ์€ ํŠน์ • ์ปค๋ฐ‹์ด ์•„๋‹Œ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉํ•œ๋‹ค. ์›ํ•˜๋Š” ์ปค๋ฐ‹๋“ค์„ ์„ ํƒํ•ด์„œ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์—†๋‹ค.

2. ํ•ญ์ƒ ํ˜„์žฌ ํ—ค๋“œ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ•œ๋‹ค.

 

 

๋‘ ๋ฒˆ์˜ ์ปค๋ฐ‹์ด ์‹คํ–‰๋œ Bugfix ๋ธŒ๋žœ์น˜๋ฅผ master ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค.

๋จผ์ € ์ฒซ๋‹จ๊ณ„๋Š” ๋ณ‘ํ•ฉํ•˜๊ธธ ์›ํ•˜๋Š” ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ master ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•œ๋‹ค.

 

 

 

๋จผ์ € git switch master๋กœ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•œ ๋’ค, git merge bugfix๋ฅผ ํ†ตํ•ด Bugfix ๋ธŒ๋žœ์น˜์—์„œ ์ปค๋ฐ‹๋œ ๋‚ด์šฉ์„ ๋ณ‘ํ•ฉํ•˜์—ฌ master๋ฅผ ๋™์ผํ•œ ์ปค๋ฐ‹์œผ๋กœ ์ด๋™์‹œ์ผœ ๋ช‡ ๊ฐœ์˜ ์ปค๋ฐ‹์„ ๋นจ๋ฆฌ ๊ฐ๊ธฐ ํ•˜์˜€๋‹ค.

๋’ค์˜ ๋‚ด์šฉ์—์„œ ์ด๋Ÿฌํ•œ ๋นจ๋ฆฌ ๊ฐ๊ธฐ ๋ณ‘ํ•ฉ์— ๋Œ€ํ•ด ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๋‹ค.

2๊ฐœ์˜ ๋ธŒ๋žœ์น˜๊ฐ€ ์žˆ๊ณ  ๋ธŒ๋žœ์น˜ ์ค‘ ํ•˜๋‚˜๋Š” ์ฒซ๋ฒˆ์งธ ๋ธŒ๋žœ์น˜๊ฐ€ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์€ ์ถ”๊ฐ€ ์ปค๋ฐ‹์„ ๊ฐ–๊ณ  ์žˆ๋‹ค. ๋”ฐ๋ผ์žก๊ธฐ ์œ„ํ•ด์„œ๋Š” ํฌ์ธํ„ฐ๋ฅผ ์•ž์œผ๋กœ ์˜ฎ๊ธฐ๋ฉด ๋œ๋‹ค. ์ด๊ฒƒ์ด git merge ๋ช…๋ น์ด ์ด๋Ÿฐ ์˜ˆ์ œ์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์ด๋‹ค.

 

 

git merge bugfix, ์ด ๋ช…๋ น์€ ๋งŒ์•ฝ ์šฐ๋ฆฌ๊ฐ€ master ๋ธŒ๋žœ์น˜์— ์žˆ๋‹ค๋ฉด ํฌ์ธํ„ฐ๋ฅผ bugfix๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด์ œ master๋„ ๋ชจ๋“  ์ด๋ ฅ์„ ๊ฐ–๊ฒŒ ๋˜๋Š”๋ฐ ์ด์ „ ์ž‘์—…๋ฟ ์•„๋‹ˆ๋ผ bugfix๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ์ž‘์—…๋“ค์„ ๋ชจ๋‘ ๊ฐ–๋Š”๋‹ค.

 

 

๋นจ๋ฆฌ ๊ฐ๊ธฐ ๋ณ‘ํ•ฉ ์ˆ˜ํ–‰ํ•˜๊ธฐ

 

  1. ๋ชฉ์ ์ง€, ๋ณ‘ํ•ฉํ•˜๋ ค๋Š” ๋ธŒ๋žœ์น˜๋กœ ์ด๋™. ์—ฌ๊ธฐ์˜ ๊ฒฝ์šฐ master ๋ธŒ๋žœ์น˜๋กœ ์ด๋™.
  2. git merge ๋ช…๋ น์— master๋กœ ๋ณ‘ํ•ฉํ•˜๊ณ  ์‹ถ์€ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„ ์ถ”๊ฐ€ํ•˜๊ธฐ. ์ด ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด master๊ฐ€ bugfix ๋ธŒ๋žœ์น˜์—์„œ ์ด ๋‘ ์ปค๋ฐ‹์„ ๋”ฐ๋ผ์žก์„ ๊ฒƒ์ž„. ๋‹ค๋ฅธ ์ƒํ™ฉ์—์„œ bugfix์—๋Š” ์—†๊ณ  master์—๋งŒ ์กด์žฌํ•˜๋Š” ์ปค๋ฐ‹์ด ์žˆ์„ ๊ฒฝ์šฐ์—๋Š” ์ถ”๊ฐ€์ ์ธ ์ž‘์—…์„ ํ•ด์•ผํ•˜๊ณ  ๋˜๋Š” ์ถฉ๋Œ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

๊ฐ•์˜์—์„œ๋Š” ์ด์ „์— ์‹ค์Šต์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด๋‘” ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ ํ…์ŠคํŠธ ๋ธŒ๋žœ์น˜๋“ค์„ ํ™œ์šฉํ•˜์˜€๋‹ค.

master๋ธŒ๋žœ์น˜์—์„œ ๋ถ„๊ธฐ๋˜์–ด ๋‚˜์˜จ ๋ธŒ๋žœ์น˜์— ์—ฌ๋Ÿฌ๋ฒˆ ์ปค๋ฐ‹๋˜์–ด ๋‚ด์šฉ์ด ์ถ”๊ฐ€๋œ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉํ•˜๋Š” ์ž‘์—….

master์— oldies ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉํ•˜๋ฉด ์ปค๋ฐ‹ํ–ˆ๋˜ ๋‚ด์šฉ๋“ค์„ ๋”ฐ๋ผ์žก์œผ๋ฉด์„œ oldies์˜ ๋ชจ๋“  ๋…ธ๋ž˜๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉฐ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋œ๋‹ค. ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ์ปค๋ฐ‹ ๋˜ํ•œ ์ถ”๊ฐ€๋˜์žˆ์Œ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ ๋ณ‘ํ•ฉํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋ณ‘ํ•ฉํ–ˆ๋˜ oldies ๋ธŒ๋žœ์น˜๊ฐ€ ์‚ญ์ œ๋˜์ง€ ์•Š๊ณ  ์—ฌ์ „ํžˆ ๋‚จ์•„์žˆ์œผ๋ฉฐ oldies๋กœ ๋Œ์•„๊ฐ€์„œ ์ƒˆ๋กœ์šด ์ž‘์—…์„ ํ•˜๋ฉด ์ด ๋‚ด์šฉ๋“ค์€ master์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์˜๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๋…๋ฆฝ์„ฑ์„ ์œ ์ง€ํ•œ๋‹ค.

 

 

 

๋ณ‘ํ•ฉ ์ปค๋ฐ‹ ์ƒ์„ฑํ•˜๊ธฐ

 

์ž‘์—… ํ›„ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ•˜๋ ค ํ•  ๋•Œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด๋ฏธ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์— ์ž‘์—…ํ•˜์—ฌ bugfix ๋ธŒ๋žœ์น˜์—๋Š” ์—†๋Š” 10๊ฐœ์˜ ์ปค๋ฐ‹์ด ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ์ƒํ™ฉ. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ๋งˆ์Šคํ„ฐ๊ฐ€ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋ฅผ ๋”ฐ๋ผ์žก๋Š”๊ฒŒ ์•„๋‹ˆ๋ฏ€๋กœ ๋นจ๋ฆฌ ๊ฐ๊ธฐ ๋ณ‘ํ•ฉ์„ ํ•  ์ˆ˜ ์—†๋‹ค.

 

์ด๋Ÿฐ ๊ฒฝ์šฐ bugfix ๋ธŒ๋žœ์น˜์—๋Š” ์—†๋Š” ์ƒˆ๋กœ์šด ์ •๋ณด๋“ค์ด ์žˆ๊ณ , bugfix๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ์ •๋ณด๋“ค์€ ๋งˆ์Šคํ„ฐ์— ์—†๋‹ค.

ํ˜„์žฌ ์˜ˆ์ œ๋Š” ๋ณ‘ํ•ฉ์‹œ ์ถฉ๋Œํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ๋ฅผ ๊ฐ€์ •ํ•œ๋‹ค.

 

 

๋นจ๋ฆฌ ๊ฐ๊ธฐ ๋ณ‘ํ•ฉ์ด ์•„๋‹ˆ๋ผ๋ฉด - ๋ณ‘ํ•ฉ ์ปค๋ฐ‹์ด๋ผ๋Š” ๊ฒƒ์ด ์ƒ์„ฑ๋˜๋Š”๋ฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊นƒ์€ ๋ณ‘ํ•ฉ์˜ ๊ธฐ์ค€์ด ๋˜๋Š” ๋ธŒ๋žœ์น˜์— ์ปค๋ฐ‹์„ ์ƒ์„ฑํ•œ๋‹ค. ์ƒˆ ์ปค๋ฐ‹์„ ๋งŒ๋“ค๊ณ  ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ํฌํ•จํ•˜๋ผ๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.

 

๋˜ ์ฃผ์˜ํ•  ์ ์€ ๋ณ‘ํ•ฉ ์ปค๋ฐ‹์€ ๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ๋ถ€๋ชจ ์ปค๋ฐ‹์„ ๊ฐ–๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ‘ํ•ฉ ์ปค๋ฐ‹์€ ๋‘˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค์ˆ˜์˜ ๋ถ€๋ชจ ์ปค๋ฐ‹์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋‘ ๊ฐœ์˜ ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉํ–ˆ์„ ๋•Œ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๊ฐ€ ๋œจ๋ฉด์„œ ํŽธ์ง‘ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

 

๋ณ‘ํ•ฉ ์ค‘ ์ถฉ๋Œ ๋ฐœ์ƒ

๊นƒ์€ ์ž๋™์ ์œผ๋กœ ๋ณ‘ํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์ง€ ๋ชปํ•ด์„œ ์–ด๋–ค ๊ฒƒ์„ ์œ ์ง€ํ•˜๊ณ  ์–ด๋–ค ๊ฒƒ์„ ์ œ๊ฑฐํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ฒฐ์ •ํ•˜์ง€ ๋ชปํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ๋ณ‘ํ•ฉ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ๋‹ค.

 

git merge๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ถฉ๋Œ์ด ์ƒ๊ธฐ๋ฉด ์ด๋Ÿฐ ๋ฉ”์„ธ์ง€๊ฐ€ ๋œจ๋ฉด์„œ ํŠน์ • ํŒŒ์ผ์—์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์—ฌ ์ž๋™ ๋ณ‘ํ•ฉ์€ ์‹คํŒจํ–ˆ๊ณ  ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•œ ๋‹ค์Œ์— ๊ฒฐ๊ณผ๋ฅผ ์ปค๋ฐ‹ํ•˜๋ผ๊ณ  ๋‚˜์˜จ๋‹ค.

Merge ์‹œ ์ถฉ๋Œ

 

 

 

์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ ํŒŒ์ผ์˜ HEAD ๋ถ€๋ถ„์— ์ด์ƒํ•œ ํ‘œ์‹œ์™€ ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

ํ˜„์žฌ ๋‚ด๊ฐ€ ์žˆ๋Š” HEAD๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ธŒ๋žœ์น˜์—์„œ ๊ฐ€์ ธ์˜ฌ ์ปจํ…์ธ ์ด๊ณ  ๋ณ‘ํ•ฉํ•ด์„œ ๋„ฃ์œผ๋ ค๋Š” ๊ธฐ์ค€ ๋ธŒ๋žœ์น˜์ด๋ฉฐ ์ž‘์€ ํ™”์‚ด์ด‰ ==== ์‚ฌ์ธ์œผ๋กœ ํ‘œ์‹œ๋œ๋‹ค

 

<<<<<<<<HEAD

I have 2 cats

I also have chickens โฌ…๏ธ์—ฌ๊ธฐ๊ฐ€ ๋ณ‘ํ•ฉํ•ด์„œ ๋„ฃ์œผ๋ ค๋Š” ๊ธฐ์ค€ ๋ธŒ๋žœ์น˜

============

I used to have a dog :( โฌ…๏ธ  ์—ฌ๊ธฐ๊ฐ€ bugfix ๋ธŒ๋žœ์น˜์—์„œ ์˜จ ๊ฒƒ์œผ๋กœ ๋ณ‘ํ•ฉํ•ด์„œ ๋„ฃ์œผ๋ ค๋Š” ๋‚ด ๋ธŒ๋žœ์น˜

>>>>>>>bug-fix

 

 

 

๊ฐ„๋‹จํžˆ ๋‹จ๊ณ„๋ณ„๋กœ ์ •๋ฆฌํ•˜์ž๋ฉด

1. ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ๊นƒ์€ ์ถฉ๋Œ์ด ์ƒ๊ธด ํŒŒ์ผ์„ ์•Œ๋ ค์ค€๋‹ค.

2. ๊ทธ ํŒŒ์ผ์„ ์—ด์–ด์„œ ํŽธ์ง‘ํ•˜์—ฌ ์ถฉ๋Œ ๋ถ€๋ถ„์„ ํ•ด๊ฒฐํ•œ๋‹ค. 

3. ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋“ฑ๋กํ•˜๊ณ  ์ปค๋ฐ‹ํ•ด์„œ ์™„๋ฃŒํ•œ๋‹ค.

 

 

 

 

 

๋ณ‘ํ•ฉ ์ค‘ ์ถฉ๋Œ ๋ฐœ์ƒ

๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์—์„œ playlist.txt๋ฅผ ๋งŒ๋“ค๊ณ  popsong๊ณผ trendy ๋‘ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜์˜€๋‹ค.

=>> playlist.txt
this is new playlist

 

๊ฐ๊ฐ์˜ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•˜์—ฌ ๊ฐ™์€ playlist.txt ํŒŒ์ผ์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค.

 

popsong ๋ธŒ๋žœ์น˜

this is new playlist


add popsong
faded
fall
blabla etc....

 

trendy ๋ธŒ๋žœ์น˜

this is new playlist

add trendy songs
aa
bb
cc

 

๋™์ผํ•œ ํŒŒ์ผ์— ๋Œ€ํ•ด ๊ฐ๊ฐ์˜ ๋ธŒ๋žœ์น˜์—์„œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์Šคํ…Œ์ด์ง€์— ์˜ฌ๋ฆฌ๊ณ  ์ปค๋ฐ‹์„ ํ•ด์ฃผ์—ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ trendy ๋ธŒ๋žœ์น˜์—์„œ popsong ๋ธŒ๋žœ์น˜์™€ ๋ณ‘ํ•ฉ์„ ํ•˜๋ ค ํ–ˆ๋”๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์œผ๋‹ˆ ์ˆ˜์ •ํ•ด๋‹ฌ๋ผ๋Š” ๊ฒฝ๊ณ ์ด๋‹ค.

 

๊ทธ๋Ÿผ trendy ๋ธŒ๋žœ์น˜์˜ playlist.txt ํŒŒ์ผ์„ ๋“ค์–ด๊ฐ€๋ณด๋ฉด

 

humandeep@DESKTOP-FSOD2IH MINGW64 ~/Downloads/git_study/test (trendy|MERGING)
$ vim playlist.txt
--------------------------
this is new playlist

<<<<<<< HEAD
add trendy songs
aa
bb
cc
=======
add popsong
faded
fall
blabla etc....
>>>>>>> popsong

 

์ด๋ ‡๊ฒŒ ์ €๋ฒˆ ๊ฐ•์˜์—์„œ ๋ณด์—ฌ์ค€ ํ˜•ํƒœ๋ฅผ ๋„๊ณ  ์žˆ๋‹ค.

 

HEAD๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ถ€๋ถ„์ด ํ˜„์žฌ ๋ธŒ๋žœ์น˜ ์œ„์น˜์˜ ๋‚ด์šฉ์ด๊ณ  ์•„๋ž˜๊ฐ€ popsong ๋ธŒ๋žœ์น˜์˜ ๋‚ด์šฉ์ด๋‹ค.

 

this is new playlist

add trendy songs
aa
bb
cc


add popsong
faded
fall
blabla etc....

 

ํ•ด๋‹น ๋‚ด์šฉ์„ ์ด๋ ‡๊ฒŒ ์ˆ˜์ •ํ•˜์˜€๋‹ค.

์ˆ˜์ •ํ•˜๋ ค๋ฉด <<<<HEAD, ======, >>>>>popsong ๊ณผ ๊ฐ™์€ ๋ถ€๋ถ„๋“ค์„ ์‚ญ์ œํ•˜๊ณ  ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ํ˜•ํƒœ๋กœ ์ˆ˜์ •ํ•˜๊ณ  ์ €์žฅํ•˜๋ฉด ๋œ๋‹ค.

 

lee@DESKTOP-FSOD2IH MINGW64 ~/Downloads/git_study/test (trendy|MERGING)
$ git status
On branch trendy
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both modified:   playlist.txt

no changes added to commit (use "git add" and/or "git commit -a")
(base)

 

๊ทธ๋Ÿฐ๋‹ค์Œ์— git status๋ฅผ ํ†ตํ•ด ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด

On branch trendy  : ํ˜„์žฌ trendy ๋ธŒ๋žœ์น˜์— ์žˆ๊ณ 

fix conflicts and run "git commit"  : ์ถฉ๋Œ ์ƒํ™ฉ์ด ์žˆ์œผ๋ฉฐ playlist.txt ํŒŒ์ผ์ด ์ˆ˜์ •๋˜์—ˆ๋‹ค๊ณ  ๋ฉ”์„ธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

๊นƒ ์‹œ๊ฐํ™”

lee@DESKTOP-FSOD2IH MINGW64 ~/Downloads/git_study/test (trendy)
$ git log --graph --all --oneline
*   31fed02 (HEAD -> trendy) resolve conflicts
|\
| * 4ed90cd (popsong) add popsong
* | 22d73f2 add trendy songs
|/
* e336985 (master) add new playlist

 

git log --graph --all --oneline ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ ์ปค๋ฐ‹๊ณผ ๋ธŒ๋žซ์น˜ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์œผ๋‚˜ ๊ฐ€๋…์„ฑ์ด ์˜ ์ข‹์ง€ ์•Š๋‹ค. 

๊ทธ๋ž˜์„œ VS Code์—์„œ Git Graph๋ฅผ ์ด์šฉํ•˜์˜€๋‹ค.

๊นƒ ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๊ธ€๋“ค์„ ๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค

 

ํ•ด๋‹น ๋ ˆํฌ ํด๋”๋กœ VS Code๋ฅผ ์—ด๊ณ  ๋งจ ์™ผ์ชฝ ์นธ ์ค‘ Source Control ์— ๋“ค์–ด๊ฐ„๋‹ค์Œ ์˜†์˜ ์•„์ด์ฝ˜์„ ๋ˆ„๋ฅด๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๊ฐ ๋ธŒ๋žœ์น˜์˜ ๋ถ„๊ธฐ์™€ ์ปค๋ฐ‹ ๋กœ๊ทธ๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ผญ ๊นƒํฌ๋ผ์ผ„์„ ์“ธ ํ•„์š”๋Š” ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

 

 

VS Code ์‚ฌ์šฉํ•ด ์ถฉ๋Œ ํ•ด๊ฒฐํ•˜๊ธฐ

git checkout -b <branch-name> : ๋ธŒ๋žœ์น˜๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜์—ฌ ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•˜๋Š” ๋ช…๋ น์–ด

VSCode๋ฅผ ์‚ฌ์šฉํ•ด ์ถฉ๋Œ ์ƒํ™ฉ์„ ํ•ด๊ฒฐํ•˜๊ณ ์ž ์ž„์˜๋กœ merge์‹œ ์ถฉ๋Œ์„ ์ผ์œผ์ผฐ๋‹ค.

master๋ธŒ๋žœ์น˜์—์„œ ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜, silence๋ฅผ ์ƒ์„ฑํ•œ ๋’ค์— ๋™์ผํ•œ ํŒŒ์ผ์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ master ๋ธŒ๋žœ์น˜์—์„œ silence ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉ์‹œ์ผฐ๋‹ค.

 

 

์ถฉ๋Œ๋ฐœ์ƒ. ํ•ด๋‹น ๋ ˆํฌ์—์„œ VSCode๋ฅผ ์—ด์–ด๋ณด๋ฉด

 

 

์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ ํŒŒ์ผ์—์„œ ์ถฉ๋Œ ๋‚ด์šฉ์— ๋Œ€ํ•ด ์„ค๋ช…์„ ํ•ด์ค€๋‹ค.

์ด๋•Œ ์œ„์˜ Accept Curent Change / Accept Incoming Change / Accept Both Changes / Compare Changes ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ์ถฉ๋Œ ์ƒํ™ฉ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ณ  ๋˜๋Š” ์›ํ•˜๋Š”๋Œ€๋กœ ์ƒˆ๋กœ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

ํ•ด๋‹น ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•œ๋’ค์—๋Š” ๋‹ค์‹œ add, commit์„ ๊ฑฐ์ณ ์ปค๋ฐ‹์„ ํ•œ๋‹ค์Œ ๋ณ‘ํ•ฉํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ master ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋œ๋‹ค.

 

 

๋งŒ์•ฝ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ ํŒŒ์ผ์„ ์ˆ˜์ •๋งŒ ํ•˜๊ณ  ์Šคํ…Œ์ด์ง€์— ์•ˆ์˜ฌ๋ฆฌ๊ณ  ์ปค๋ฐ‹์„ ์•ˆํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋‹ˆ๊นŒ ์ฃผ์˜ํ•  ๊ฒƒ.