Dev_TIMI

์Šค๋‚ต ๊นƒ ๐Ÿช - ๊ธฐ์ดˆํŽธ #4: ๊นƒ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  GitHub์™€ ์—ฐ๋™ํ•˜๊ธฐ

by its_TIMI

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


1. ๋ธŒ๋žœ์น˜๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

 

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

โ€ข ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๋ถ„๋ฆฌ: ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

โ€ข ํ˜‘์—… ์šฉ์ด์„ฑ: ํŒ€์›๋“ค๊ณผ ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘์—…ํ•œ ํ›„ ๋ณ‘ํ•ฉํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ํ˜‘์—…ํ•  ์ˆ˜ ์žˆ๋‹ค.

โ€ข ๋ณ€๊ฒฝ ์ด๋ ฅ ๊ด€๋ฆฌ: ๋ธŒ๋žœ์น˜๋ฅผ ํ†ตํ•ด ๋ณ€๊ฒฝ ์ด๋ ฅ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.


2. ๋กœ์ปฌ์—์„œ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ์ด๋™ํ•˜๊ธฐ

 

Git์—์„œ๋Š” branch, checkout, switch ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋žœ์น˜๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.

switch ๋ช…๋ น์–ด๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋” ์ง๊ด€์ ์œผ๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ์ „ํ™˜ํ•˜๊ณ  ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.


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

 

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

switch ๋ช…๋ น์–ด๋กœ ์ƒˆ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค:

git switch -c <๋ธŒ๋žœ์น˜ ์ด๋ฆ„>

 

์˜ˆ:

git switch -c feature/login

 

2. ๊ธฐ์กด ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜

์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜ํ•  ๋•Œ๋„ switch ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค:

git switch <๋ธŒ๋žœ์น˜ ์ด๋ฆ„>

 

์˜ˆ:

git switch main

 

๊ธฐ์กด ๋ฐฉ์‹(checkout) ์‚ฌ์šฉ

 

ํ•˜์ง€๋งŒ? ๋Œ€๋ถ€๋ถ„ ์•Œ๊ณ  ์žˆ์„ checkout ๋ช…๋ น์–ด๋„ ์—ฌ์ „ํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค:

 

โ€ข ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ์ด๋™:

git checkout -b <๋ธŒ๋žœ์น˜ ์ด๋ฆ„>

 

โ€ข ๊ธฐ์กด ๋ธŒ๋žœ์น˜๋กœ ์ด๋™:

git checkout <๋ธŒ๋žœ์น˜ ์ด๋ฆ„>

3. ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ(GitHub)์— ํ‘ธ์‹œํ•˜๊ธฐ

 

๋กœ์ปฌ์—์„œ ์ƒ์„ฑํ•œ ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์—…๋กœ๋“œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅธ๋‹ค:

 

1. ์ƒˆ ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์— ํ‘ธ์‹œ

 

git push ๋ช…๋ น์–ด๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์—…๋กœ๋“œํ•œ๋‹ค:

git push -u origin <๋ธŒ๋žœ์น˜ ์ด๋ฆ„>

 

์˜ˆ:

git push -u origin feature/login

 

2. ์›๊ฒฉ ๋ธŒ๋žœ์น˜ ์ถ”์  ์„ค์ •

-u ์˜ต์…˜์€ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ ๋ธŒ๋žœ์น˜์™€ ์—ฐ๊ฒฐ(์ถ”์ )ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ดํ›„์—๋Š” git push๋งŒ์œผ๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.


4. ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ ๋ฐ ์‚ญ์ œ

 

1. ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ

๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ์ž‘์—… ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค:

git switch main
git merge <๋ธŒ๋žœ์น˜ ์ด๋ฆ„>

 

์˜ˆ:

git switch main
git merge feature/login

 

2. ๋กœ์ปฌ ๋ธŒ๋žœ์น˜ ์‚ญ์ œ

๋ณ‘ํ•ฉ์ด ์™„๋ฃŒ๋œ ๋ธŒ๋žœ์น˜๋Š” ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค:

git branch -d <๋ธŒ๋žœ์น˜ ์ด๋ฆ„>

 

 

3. ์›๊ฒฉ ๋ธŒ๋žœ์น˜ ์‚ญ์ œ

์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ๋„ ๋ธŒ๋žœ์น˜๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค:

git push origin --delete <๋ธŒ๋žœ์น˜ ์ด๋ฆ„>

์ •๋ฆฌ

 

Git ๋ธŒ๋žœ์น˜๋Š” ์ž‘์—… ํ™˜๊ฒฝ์„ ๋ถ„๋ฆฌํ•˜๊ณ , ํšจ์œจ์ ์ธ ํ˜‘์—…๊ณผ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ•ต์‹ฌ์ ์ธ ๋„๊ตฌ์ด๋‹ค.

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

๋‹ค์Œ ๊ธ€์—์„œ๋Š” Git์˜ ์ž‘์—… ์˜์—ญ(Working Directory, Staging Area, Repository)์— ๋Œ€ํ•ด ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๋‹ค. (๊ธฐ์ˆ ํŽธ์—์„œ)


์ถ”๊ฐ€ ํŒ

โ€ข switch์™€ checkout์˜ ์ฐจ์ด์ 

 

โ€ข switch๋Š” ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ์ด๋™์— ์ดˆ์ ์„ ๋งž์ถ˜ ๋ช…๋ น์–ด์ด๋‹ค.

โ€ข checkout์€ ๋ธŒ๋žœ์น˜ ์ „ํ™˜ ์™ธ์—๋„ ํŒŒ์ผ ๋ณต์› ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๋ฉฐ, ๋‹ค๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

โ€ข ์ตœ์‹  Git ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ switch ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค.

๋ธ”๋กœ๊ทธ์˜ ํ”„๋กœํ•„ ์‚ฌ์ง„

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

Dev_TIMI

its_TIMI

ํ™œ๋™ํ•˜๊ธฐ