Banner

My Tech Blog (๋ธŒ๋žœ์น˜)

์˜ค๋Š˜์˜ ๋ช…์–ธ
" ์–ธ์–ด์˜ ํ•œ๊ณ„๊ฐ€ ๊ณง ์ž๊ธฐ ์„ธ๊ณ„์˜ ํ•œ๊ณ„๋‹ค. "
- ๋ฃจํŠธ๋น„ํžˆ ๋น„ํŠธ๊ฒ์Šˆํƒ€์ธ (์ฒ ํ•™์ž)
โš ๏ธ ๋ฌธ์ œ์ปค๋ฐ‹ ํ›„ ํ‘ธ์‹œํ•   ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฉ”์„ธ์ง€Fatal: The current branch main has no upstream branch ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋‹ค์Œ์— ๋˜ ๊ฐ™์€ ๋ช…๋ น์–ด๋กœ ํ‘ธ์‰ฌํ•ด ์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๐Ÿง ์›์ธgit push ๋ช…๋ น์–ด๋งŒ์œผ๋กœ ํ‘ธ์‹œ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ์ด์œ ๋Š”, ํ˜„์žฌ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜๊ฐ€ ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ๋ธŒ๋žœ์น˜์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฆ‰, main ๋ธŒ๋žœ์น˜๊ฐ€ ์–ด๋–ค ์›๊ฒฉ ์ €์žฅ์†Œ(origin)์˜ ๋ธŒ๋žœ์น˜์™€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์•„์„œ, Git์ด ์–ด๋””๋กœ ํ‘ธ์‹œํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๋Š” ์ƒํ™ฉ์ธ ๊ฒƒ์ด๋‹ค.์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด, git push ๋ช…๋ น์–ด์—์„œ ์–ด๋–ค ์›๊ฒฉ ์ €์žฅ์†Œ์— ํ‘ธ์‹œํ• ์ง€ ๋ช…์‹œํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. git push๋งŒ ์ž…๋ ฅํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์›๊ฒฉ ์ €์žฅ์†Œ๊ฐ€ ํ•„์š”ํ•˜๊ณ , ์ด๋•Œ ์—ฐ๊ฒฐ๋œ ์›๊ฒฉ ์ €์žฅ์†Œ๊ฐ€ ์—†์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ..
1. ์†Œ์ŠคํŠธ๋ฆฌ ๋“ค์–ด๊ฐ€์„œ ์ตœ์‹  ์ƒํƒœ์—์„œ ๋ธŒ๋žœ์น˜๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ธฐ ์ด๋ฆ„์€ ์ถฉ๋Œ ์—ฐ์Šต์šฉ์ด๋‹ˆ๊นŒ conflict๋ผ๊ณ  ํ•ด ์ฃผ์—ˆ๋‹ค.์ด๋ ‡๊ฒŒ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋ฉด checkout์ด ์ž๋™์œผ๋กœ ๋œ๋‹ค. 2. ์ด์ œ conflict์—์„œ ์—๋””ํ„ฐ๋ฅผ ์—ด์–ด์„œ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  ์ปค๋ฐ‹ ํ•ด ์คŒ 3. ๋งˆ์Šคํ„ฐ์— ์ฒดํฌ์•„์›ƒ ํ•˜๊ณ  ์—๋””ํ„ฐ๋กœ ๊ธ€ ์ˆ˜์ • ํ›„ ์ปค๋ฐ‹ ์—ฌ๊ธฐ๋ถ€ํ„ฐ๋Š” ํ‹ฐ์Šคํ† ๋ฆฌ๊ฐ€ ์ €์ ˆ๋กœ ๋กœ๊ทธ์•„์›ƒ๋˜๋ฉด์„œ ์Šคํฌ๋ฆฐ์ƒท ํ•œ๊ฒŒ ์‹น ๋‚ ์•„๊ฐ...master ์ฒดํฌ์•„์›ƒํ•œ ์ƒํƒœ์—์„œ conflict ๋ณ‘ํ•ฉํ•˜๋ฉด์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๋‹ค๊ณ  ๋œจ๋ฉด์„œ ์•„๋ž˜์— ์Šคํ…Œ์ด์ง€์— ์˜ฌ๋ผ๊ฐ„ ํŒŒ์ผ ์˜์—ญ์—๋Š” ๋Š๋‚Œํ‘œ ์•„์ด์ฝ˜์ด ๋œธ์ถฉ๋Œ์ด ๋‚œ ๊ฒƒ!  1. pull ์ถฉ๋Œํ•ด๊ฒฐ๋ฒ•1-1. ์—๋””ํ„ฐ์—์„œ ํ•ด๊ฒฐ- Shift + delete(๋ผ์ธ์ง€์šฐ๊ธฐ) ์ง์ ‘ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜- ํ•˜๋‹จ์˜ Resolve in Merge Editor ํด๋ฆญ์™ผ์ชฝ..
๊ทธ๋™์•ˆ ํŒ€ํ”„๋กœ์ ํŠธ ํ–ˆ์„ ๋•Œ ๋‚˜๋Š” ์ฝ”๋“œ๋งŒ ์งœ๊ณ  ๊ทธ๋ƒฅ ๊นƒ ๋ฐฐ์‰ฌ์—์„œ add commit push๋งŒ ํ–ˆ์—ˆ๋‹ค. ์šฐ๋ฆฌํŒ€ ๋„ค ์‚ฌ๋žŒ๊บผ ์ฝ”๋“œ ํ•ฉ์น˜๋Š”๊ฑฐ๋Š” ๋ณ‘ํ›ˆ๋‹˜์ด ํ•ด์ฃผ์…”์„œ ์†Œ์ŠคํŠธ๋ฆฌ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ด ๋ณธ ์ ์€ ์—†์—ˆ๋‹ค. ์–ด์ œ๋ถ€ํ„ฐ ์†Œ์ŠคํŠธ๋ฆฌ ๊น”์•„์„œ ์จ ๋ณด๋Š”๋ฐ  ์•„์ง ์ต์ˆ™ํ•˜์ง€ ์•Š์•„์„œ ์ƒˆ๋กœ ๋ฐฐ์šฐ๋Š”๊ฒŒ ๋งŽ๋‹ค.  ๊ฒ ์—†๋Š” ๋‚˜๋Š” ์–ด์ฐจํ”ผ ์—ฐ์Šตํ• ๊ฑฐ ์ด๊ฒƒ์ €๊ฒƒ ๋ˆŒ๋Ÿฌ๋ดค๋‹ค.๋ณ‘ํ•ฉ๋„ ํ•ด๋ณด๊ณ  ๋ธŒ๋žœ์น˜ ์ฒดํฌ์•„์›ƒ, ๋ฎ์–ด์“ฐ๊ธฐ, ๊ฐ•์ œ๋กœ ์‚ญ์ œ ๋“ฑ ใ…‹ใ…‹ใ…‹ ์ด๊ฒƒ์ €๊ฒƒ ์•„๋ฌด๊ฑฐ๋‚˜ ๋‹ค ๋ˆŒ๋Ÿฌ๋ณด๋‹ค๊ฐ€ ์ž๊พธ ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค ใ…‹ใ…‹ใ…‹๊ณ ์žฅ๋‚˜๋ฉด ์ปดํ“จํ„ฐ ๋ฐ€๋ฉด ๋ผ~ ํšŒ์‚ฌ์ปด๋„ ์•„๋‹Œ๋ฐใ…‹ใ…‹ใ…‹ (๋†๋‹ด) Git ์ €์žฅ์†Œ์— ์—ฐ๊ฒฐ๋œ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋ฉด ์ˆ˜์ • ํ›„์— ์•„์ง ์Šคํ…Œ์ด์ง•์ด๋‚˜ ์ปค๋ฐ‹ ์•ˆํ–ˆ์„ ๋•Œ ์ฝ”๋“œ ์™ผ์ชฝ์— ์กฐ๊ทธ๋งฃ๊ฒŒ ์„ธ๋กœ์ค„์ด ๋œฌ๋‹ค.  ์ด๊ฑธ Diff Decorations์ด๋ผ๊ณ  ํ•œ๋‹ค. Diff Decorations๋Š” ํŒŒ์ผ..
๋‚˜๋งŒ ์•Œ๊ธฐ์—๋Š” ์•„๊นŒ์šด ์‚ฌ์ดํŠธ `Learn Git Branching` ์€ Git์„ ์“ธ ๋•Œ ํ•„์š”ํ•œ ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์žก๋Š” ๊ฒƒ์„ ๋•๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ์‚ฌ์ดํŠธ์ด๋‹ค. https://learngitbranching.js.org/?locale=ko Learn Git BranchingAn interactive Git visualization tool to educate and challenge!learngitbranching.js.org ์ฒ˜์Œ ์ ‘์†ํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ํŒ์—…์ด ๋œจ๋Š”๋ฐ ESC ๋ˆ„๋ฅด๋ฉด ๋ฐ”๋กœ ๋ฐฐ์‰ฌ์ฐฝ์— ์•„๋ฌด๊ฑฐ๋‚˜ ์—ฐ์Šตํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.๋‹จ๊ณ„๋ณ„๋กœ ์—ฐ์Šตํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์€ ์•„๋ž˜ ํŒ์—…์—์„œ ๋ ˆ๋ฒจ์„ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค. ์ฝ˜์†”์— ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด๋„ ๋˜๊ณ ,๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„ ์ง์ ‘ ํด๋ฆญํ•ด๋„ checkout ์ด ๋œ๋‹ค~
๐Ÿ“ŒGIT checkout VS resetโšก checkout์€ head๋ฅผ ๋ฐ”๊พผ๋‹ค.git checkout A : ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋Š” A๋ฒ„์ „์ด๋œ๋‹ค.์‹œ๊ฐ„์—ฌํ–‰์„ ํ•˜๋Š” ๊ฒƒ   git checkout main : ํ—ค๋“œ๋ฅผ ๋ฉ”์ธ์œผ๋กœ ๋ฐ”๊พผ๋‹ค.์›Œํ‚น๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋‹ค์‹œ B์™€ ๊ฐ™์•„์ง„๋‹ค. ์‹œ๊ฐ„์—ฌํ–‰์„ ๋๋‚ธ ๊ฒƒ   โšก reset์€ head์˜ branch๋ฅผ ๋ฐ”๊พผ๋‹ค.git reset A : head๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” branch์ธ main์„ A๋กœ ๋ฐ”๊พผ๋‹ค.B ๋ฒ„์ „์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ.  git reset B : main์ด B๋ฅผ ๋‹ค์‹œ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•œ๋‹ค.B ๋ฒ„์ „์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ. B๋Š” ๋ณต์›๋œ ๊ฒƒ. ์ด ์ƒํƒœ์—์„œ git checkout B ํ•˜๋ฉด ์ด ์ƒํƒœ์—์„œ ๋‹ค์‹œ git reset A ํ•˜๋ฉด?ํ˜„์žฌ head๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” branch๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์— head๊ฐ€ ์ง์ ‘ A๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค..
์ƒ๋‹จ์œผ๋กœ