Front-end/100DaysOfCode

[100DaysOfCode] 13๊ฐ•

year.number 2022. 7. 28. 22:29

 

๐Ÿ’ก Branch

 

 

[Git] ๋ธŒ๋žœ์น˜(Branch)์ƒ์„ฑ ๋ฐ ์—…๋กœ๋“œ

๋ธŒ๋žœ์น˜๋ž€? ํŠน์ • ์ปค๋ฐ‹์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ์ด๋‹ค [๋ธŒ๋žœ์น˜ ์ƒ์„ฑ] git branch ๋ธŒ๋žœ์น˜์ด๋ฆ„ ์˜ˆ์‹œ) git branch develop ์ž…๋ ฅ ํ›„ git log ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด๋ณด๋ฉด HEAD๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋˜ master ๋ธŒ๋žœ์น˜์— develop ๋ธŒ๋žœ์น˜๋„ ๊ฐ™์ด ๊ฐ€๋ฆฌ

zooozoo.tistory.com

 

 

๋ธŒ๋žœ์น˜ ์ด๋ฆ„ ๋ณ€๊ฒฝ: git branch -m ๋ณ€๊ฒฝํ•  ์ด๋ฆ„

 

* git init์„ ํ•˜๋ฉด ์ž๋™์œผ๋กœ master ๋ธŒ๋žœ์น˜๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋Š”๋ฐ ์š”์ฆ˜์€ master ๋Œ€์‹  main์œผ๋กœ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ด์„œ ์“ฐ๋Š” ์ถ”์„ธ๋ผ๊ณ  ํ•œ๋‹ค 

 

 

 

๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ์ด๋™ : git checkout -b feature

 

 

 

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

git add์™€ ์ปค๋ฐ‹์„ ํ†ตํ•ด git์ด ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋ฅผ ์ถ”์  ๋ฐ ์Šคํ…Œ์ด์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.


๋ธŒ๋žœ์น˜ ์ถฉ๋Œ

1. A, B ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๊ฐ€ ์žˆ๋‹ค

2. A, B ๋ธŒ๋žœ์น˜์—์„œ ๋™์‹œ์— ๊ฐ๊ฐ ํŒŒ์ผ์˜ ๋™์ผํ•œ ๊ณณ์„ ์ˆ˜์ •ํ•˜๊ณ  merge ์‹œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ๋‹ค

 

 

A๋ธŒ๋žœ์น˜์—์„œ ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ์ž‘์„ฑํ•˜๊ณ , B๋ธŒ๋žœ์น˜์—์„œ ๋™์ผํ•œ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•œ ๋’ค ์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€๋ฅผ ์ž‘์„ฑํ•œ๋‹ค

 

fatal: No remote for the current branch

 

merge๋ฅผ ํ•ด์„œ ์ถฉ๋Œ ํ…Œ์ŠคํŠธ ํ•˜๋ ค๋Š”๋ฐ ๋งˆ์ฃผ์นœ ์˜ค๋ฅ˜

<git merge>๋งŒ ์ž…๋ ฅํ•˜์ง€ ๋ง๊ณ , <git merge merge๋ฅผ ํ•  ๋ธŒ๋žœ์น˜>๊นŒ์ง€ ์ž‘์„ฑํ•ด์ค˜์•ผ ํ•œ๋‹ค

 

๋œป ๋ฐ–์˜ ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๋‚˜๋ฉด ์ง„์งœ ๋ฌธ์ œ์˜ ์—๋Ÿฌ(merge ์ถฉ๋Œ)๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

 

 

VScode๊ฐ€ ์ถฉ๋Œ์„ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค

 

Accept Current Change: HEAD ์ ์šฉ
Accept Incoming Change: merge์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ๋ธŒ๋žœ์น˜ ์ ์šฉ
Accept Both Change: ๋‘˜๋‹ค ์ ์šฉ
Compare Change: ๋‘ ๊ฐœ ๋น„๊ต

 

๋ธŒ๋žœ์น˜&์ปค๋ฐ‹ ์‚ญ์ œ

delete branch or commit

 

1. ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด file1.txt, file2.txt, file3.txt๋ฅผ ์ƒ์„ฑํ•œ ๋’ค ๊ฐ๊ฐ ์ปค๋ฐ‹์„ ํ•ด์ค€๋‹ค.

 

2. ๋””๋ ‰ํ† ๋ฆฌ์—์„œ file3.txt๋ฅผ ๊ทธ๋ƒฅ ์‚ญ์ œํ•œ๋‹ค. 

(์ด๋Ÿฌํ•œ ์ˆ˜์ •์‚ฌํ•ญ์€ ์Šคํ…Œ์ด์ง• ๋˜์ง€ ์•Š๋Š”๋‹ค Changes not staged for commit)

 

 

๐Ÿ’กgit rm ํŒŒ์ผ์ด๋ฆ„

 

์ฒ˜์Œ์— ๊ทธ๋ƒฅ ์‹คํ–‰ํ•˜๋ฉด ์‚ญ์ œ๋˜์ง€ ์•Š์Œ

3. ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•ด์ค€ ๋’ค์— git rm ํ•ด์ฃผ๋ฉด ์ •์ƒ์ ์œผ๋กœ ์‚ญ์ œ๋œ๋‹ค

(์ด๋Ÿฌํ•œ ์ˆ˜์ •์‚ฌํ•ญ์€ ๋ฐ”๋กœ ์ปค๋ฐ‹๋œ๋‹ค)

 

4. ์ง์ ‘ ์ปค๋ฐ‹ํ•  ์ˆ˜๋„ ์žˆ๋‹ค


์‚ญ์ œํ•œ ํŒŒ์ผ(์ปค๋ฐ‹)์„ ๋˜๋Œ๋ฆฌ๊ณ  ์‹ถ์„ ๋•Œ

๐Ÿ’กgit reset --hard HEAD~1

 

์ตœ๊ทผ ํŒŒ์ผ์„ ์‚ญ์ œํ•œ ์ปค๋ฐ‹์ด ์‚ญ์ œ๋˜๋ฉด์„œ ์‚ญ์ œ๋๋˜ ํŒŒ์ผ๋„ ๊ฐ™์ด ๋Œ์•„์˜จ๋‹ค


๋ธŒ๋žœ์น˜ ์‚ญ์ œ

๐Ÿ’กgit branch -D ๋ธŒ๋žœ์น˜์ด๋ฆ„

 

-D๋Š” ๋ฐ˜๋“œ์‹œ ๋Œ€๋ฌธ์ž๋กœ ์ž‘์„ฑ!

 

 


๋ธŒ๋žœ์น˜๋ฅผ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹ ๋‹จ๊ณ„๋กœ ๋ฆฌ์…‹

๐Ÿ’กgit checkout -- .

 

๐Ÿ’กgit reset ํŒŒ์ผ์ด๋ฆ„