๊ด€๋ฆฌ ๋ฉ”๋‰ด

JiYoung Dev ๐Ÿ–ฅ

[Git&GitHub] branch ๋งŒ๋“ค๊ธฐ ๋ณธ๋ฌธ

project

[Git&GitHub] branch ๋งŒ๋“ค๊ธฐ

Shinjio 2023. 6. 13. 22:21

branch

ํ•˜๋‚˜์˜ ์ฝ”๋“œ ๊ด€๋ฆฌ ํ๋ฆ„

 

๋งจ ์ฒ˜์Œํ•œ ์ปค๋ฐ‹ : root commit 

๊นƒ์€ root commit์„ ์‹œ์ž‘์œผ๋กœ ๊ฐ€์ง€๊ฐ€ ๋ป—์–ด๋‚˜๊ฐ€๋Š” ๋ชจ์–‘์ด ๋จ

 

ex. ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ์œ ๋กœ branch, ๋ฌด๋ฃŒ branch ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Œ

 

 

ํ˜„์žฌ๋Š” ๋งˆ์Šคํ„ฐ(๋ฉ”์ธ) ๋ธŒ๋žœ์น˜ ์œ„์— ์žˆ์Œ์„ ์˜๋ฏธํ•จ 

** ๋งˆ์Šคํ„ฐ(๋ฉ”์ธ) ๋ธŒ๋žœ์น˜ : ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  ์ปค๋ฐ‹์„ ํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ƒ๊ธฐ๋Š” ๋ธŒ๋žœ์น˜, ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜

 

1. ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค๊ธฐ : git branch [๋ธŒ๋žœ์น˜ ์ด๋ฆ„]

 

 

2. ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ :  git checkout [์ด๋™ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ธŒ๋žœ์น˜ ์ด๋ฆ„]

 

 

3. git add > git commit

 

 

๋ธŒ๋žœ์น˜๋กœ ์ปค๋ฐ‹ํ•œ ์ˆ˜์ •ํ•œ ํŒŒ์ผ ํ™•์ธ ๊ฒฐ๊ณผ

 

 

main(master) branch์˜ ๊ฐ™์€ ํŒŒ์ผ ํ™•์ธ ๊ฒฐ๊ณผ

branch์˜ ํŒŒ์ผ๋งŒ ๋ณ€๊ฒฝ๋˜๊ณ  main์˜ ํŒŒ์ผ์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ

 

 

git branch : ๋ธŒ๋žœ์น˜ ๋ชฉ๋ก 

git branch [๋ธŒ๋žœ์น˜ ์ด๋ฆ„] : ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ

git branch -d [๋ธŒ๋žœ์น˜ ์ด๋ฆ„] : ๋ธŒ๋žœ์น˜ ์‚ญ์ œ

git checkout -b [๋ธŒ๋žœ์น˜ ์ด๋ฆ„] : ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ์ด๋™

 

4. branch merge [๋ธŒ๋žœ์น˜ ์ด๋ฆ„]

 

ํ˜„์žฌ ๋‚ด๊ฐ€ ์žˆ๋Š” test3 ๋ธŒ๋žœ์น˜์— main ๋ธŒ๋žœ์น˜๋ฅผ ๋ณ‘ํ•ฉํ•˜๊ฒ ๋‹ค. 

 

 

merge๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด conflict๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ!
< ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 1 >
1. ์ปจํ”Œ๋ฆญํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ํŒŒ์ผ์„ ์—ฐ๋‹ค. 
2. ๋จธ์ง€์˜ ๊ฒฐ๊ณผ ๊ฐ€ ๋˜์—ˆ์œผ๋ฉด ํ•˜๋Š” ๋ชจ์Šต๋Œ€๋กœ ์ฝ”๋“œ ์ˆ˜์ •
3. ์ปค๋ฐ‹

< ํ•ด๊ฒฐ๋ฐฉ๋ฒ• 2 - merge ์ทจ์†Œ >
git merge --abort
์ด ๋ฐฉ๋ฒ•์€ conflict๊ฐ€ ๋ฐœ์ƒํ•œ ํŒŒ์ผ์ด ๋„ˆ๋ฌด ๋งŽ๊ฑฐ๋‚˜ ์ข€๋” ๋‚˜์ค‘์— mergeํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ ์‚ฌ์šฉ

< ์—ฌ๋Ÿฌ ํŒŒ์ผ์—์„œ conflict ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• >
1. ํŒŒ์ผ ํ•˜๋‚˜์”ฉ conflict๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  git add [ํŒŒ์ผ ์ด๋ฆ„] ์ปค๋งจ๋“œ๋กœ ํ•˜๋‚˜์”ฉ staging area์— ์˜ฌ๋ฆฌ๊ธฐ
2. ๋ชจ๋“  ํŒŒ์ผ์˜ conflict๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  git add .