๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป | CS6

[Git&Github] Git ์ •๋ฆฌ-5 (๋‹ค์–‘ํ•œ merge๋ฐฉ๋ฒ•, 3way, fast-forward, rebase, squash, ๋ธŒ๋žœ์น˜ ์‚ญ์ œ) merge ๋ฐฉ๋ฒ•๋“ค์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž. 1. 3-way ์ €๋ฒˆ ํฌ์ŠคํŠธ์—์„œ ๋‹ค๋ฃจ์—ˆ๋˜ merge๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ์ด๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ 3-way merge ์ด๋‹ค. ๊ฐ branch์— ์ƒˆ๋กœ์šด commit์ด ํ•˜๋‚˜์”ฉ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์ˆ˜ํ–‰๋˜๋Š” merge์ด๋‹ค. ์ƒˆ๋กœ์šด commit์— 2๊ฐœ์˜ branch๋ฅผ ํ•ฉ์น˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ˜•ํƒœ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. 2. fast-forward 3-way์™€ ๋‹ค๋ฅด๊ฒŒ ์ƒˆ๋กœ์šด branch์—๋งŒ commit์ด ์กด์žฌํ•˜๊ณ  ๊ธฐ์กด branch์—์„œ๋Š” commit์„ ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ์ž๋™์œผ๋กœ fast-forward merge๊ฐ€ ์ˆ˜ํ–‰๋œ๋‹ค. ์ด์ฒ˜๋Ÿผ fast-forward merge๋ผ๋Š” ํ„ฐ๋ฏธ๋„ ๋ฉ”์„ธ์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ fast-forward๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด ์•„๋ž˜์˜ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค. .. 2023. 10. 29.
[Git&Github] Git ์ •๋ฆฌ-4 (branch, merge) 1. git branch ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด์˜ ๊ธฐ๋Šฅ์„ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด๋•Œ ๊ธฐ์กด ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๋„ ๊ดœ์ฐฎ์ง€๋งŒ ์ž‘์—… ๋„์ค‘ ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด๊ฐ€ ๋ง๊ฐ€์ ธ๋ฒ„๋ฆด ์ˆ˜๋„ ์žˆ๋Š” ๋ฆฌ์Šคํฌ๋ฅผ ์•ˆ๊ณ ์žˆ์–ด์•ผํ•œ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•ด์„œ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. git์˜ branch ๊ธฐ๋Šฅ์€ ์†์‰ฝ๊ฒŒ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•ด์ค€๋‹ค. ์‚ฌ์šฉ๋ฒ• git branch ๋ธŒ๋žœ์น˜๋ช… ์œ„ ๋ช…๋ น์–ด๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ํ”„๋กœ์ ํŠธ์˜ ์‚ฌ๋ณธ์ด ํ•˜๋‚˜ ์ƒ์„ฑ๋œ๋‹ค. git switch ๋ธŒ๋žœ์น˜๋ช… ์ƒ์„ฑํ•œ ๋ธŒ๋žœ์น˜๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์‚ฌ๋ณธ์—์„œ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค. ์˜ˆ์‹œ 1 sub๋ผ๋Š” branch๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ๋ณ€๊ฒฝํ•˜์˜€๋‹ค. git status๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ˜„์žฌ ์–ด๋– ํ•œ branch์—์„œ ์ž‘์—… ์ค‘์ธ์ง€.. 2023. 10. 29.
[Git&Github] Git ์ •๋ฆฌ-3 (.gitignore) Git์€ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ๋“ค์„ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋•Œ ๊ตณ์ด ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒƒ ํ˜น์€ ๊ผญ ๋ฐฐ์ œํ•ด์•ผํ•  ๊ฒƒ๋“ค์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒƒ๋“ค : ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ๋“ค or ๋‹ค์šด๋กœ๋“œ๋˜๋Š” ๊ฒƒ๋“ค (buildํŒŒ์ผ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ) ๋ฐฐ์ œํ•ด์•ผํ•˜๋Š” ๊ฒƒ๋“ค : ๋ณด์•ˆ์ƒ์œผ๋กœ ์ค‘์š”ํ•œ ํŒŒ์ผ๋“ค ์ด๋Ÿด ๋•Œ์—๋Š” .gitignore ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์ œํ•  ์š”์†Œ๋“ค์„ ๋ฏธ๋ฆฌ ์ง€์ •ํ•ด๋†“์„ ์ˆ˜ ์žˆ๋‹ค. 1. ์‚ฌ์šฉํ•˜๊ธฐ ๋จผ์ € ์ค‘์š”ํ•œ ํŒŒ์ผ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. git status๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์ด์ œ .gitignore ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ ๋’ค ์•„๋ž˜์™€ ๊ฐ™์€ ๋‚ด์šฉ์„ ์‚ฝ์ž…ํ•œ๋‹ค. secret.txt ๋‹ค์‹œ git status๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด secret.txt๊ฐ€ ๋”์ด์ƒ ์ถ”์ ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ฐฐ์ œํ•  ์š”์†Œ๋“ค์„ ๋“ฑ๋กํ•ด๋†“์„ ์ˆ˜ ์žˆ๋‹ค. 2. ์ถ”.. 2023. 10. 29.
[Git&Github] Git ์ •๋ฆฌ-2 (w.VSCode, diff) 0. VSCode์—์„œ ๊นƒ ํ™œ์šฉํ•˜๊ธฐ ํ„ฐ๋ฏธ๋„์ด ์•„๋‹Œ VSC์—์„œ๋„ git์„ ํŽธํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 1) git ๊ธฐ๋ณธ ์—๋””ํ„ฐ๋ฅผ VSCode๋กœ ๋ฐ”๊พธ๊ธฐ git config --global core.editor "code --wait" ๋งฅ์˜ ๊ฒฝ์šฐ git ๊ธฐ๋ณธ ์—๋””ํ„ฐ๊ฐ€ vi ์ฆ‰, ๊ธฐ๋ณธ ํ„ฐ๋ฏธ๋„๋กœ ์„ค์ •๋˜์–ด์žˆ๋Š”๋ฐ ์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด VSC๋ฅผ ๊ธฐ๋ณธ ์—๋””ํ„ฐ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 2) VSC์—์„œ git add commit ์™ผ์ชฝ ํŒจ๋„์— ์œ„์น˜ํ•œ Source Control์„ ํด๋ฆญํ•˜๋ฉด ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์œ„์น˜ํ•œ ํŒŒ์ผ๋“ค์˜ ๋ณ€ํ™”์— ๋Œ€ํ•ด์„œ ์ถ”์ ํ•œ ๊ฒƒ์„ ๋ณผ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ + ๋ฒ„ํŠผ์œผ๋กœ git add๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ  ์ฒดํฌ ๋ฒ„ํŠผ์œผ๋กœ git commit์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํŒŒ์ผ ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•˜๊ฑฐ๋‚˜ ๋งŽ์€ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ค‘ ์ผ๋ถ€๋งŒ repo์— ๋“ฑ๋กํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ .. 2023. 10. 28.
[Git&Github] Git ์ •๋ฆฌ-1 (์ตœ์ดˆ์„ค์ •, add, commit, status, log) 0. git์ด ํ•„์š”ํ•œ ์ด์œ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋˜ ๋„์ค‘ ์ด์ „์— ์ž‘์„ฑํ–ˆ๋˜ ๊ฒƒ์œผ๋กœ ๋˜๋Œ์•„ ๊ฐ€๊ณ  ์‹ถ์„๋•Œ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด๋Ÿด๋•Œ ํŒŒ์ผ์„ ๋ฐฑ์—…ํ•ด๋‘๋Š” ๊ฒƒ๋„ ์ข‹์ง€๋งŒ ๋ฒ„์ „๊ด€๋ฆฌ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด๋œ๋‹ค. ๋ฒ„์ „๊ด€๋ฆฌ ์†Œํ”„ํŠธ์›จ์–ด(VCS) ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ git์ด๋‹ค. ์žฅ์  1. ํ”„๋กœ์ ํŠธ์˜ ์‹œ๊ฐ„๊ณผ ์ฐจ์›์„ ์ž์œ ๋กญ๊ฒŒ ํ•ด์ค€๋‹ค. git์„ ์ด์šฉํ•˜๋ฉด ํ”„๋กœ์ ํŠธ์˜ ๋ฒ„์ „์„ ๊ณผ๊ฑฐ๋กœ ๋˜๋Œ๋ฆฌ๊ฑฐ๋‚˜ ํŠน์ •ํ•œ ๋‚ด์—ญ์„ ์ทจ์†Œํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋˜ํ•œ ์—ฌ๋Ÿฌ ๋ชจ๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์ „ํ™˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ๋ชจ๋“œ๋ฅผ ํ•ฉ์น˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์žฅ์  2. ํ”„๋กœ์ ํŠธ ํ˜‘์—…์— ์•„์ฃผ ํŽธ๋ฆฌํ•˜๋‹ค. ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ž‘์—…ํ•  ๋•Œ ๊ฐ์ž ์ž์‹ ์ด ๋งก์€ ๋ถ€๋ถ„์„ ์ž‘์—…ํ•˜๊ณ  ํ•˜๋‚˜์˜ ๋ฉ”์ธ ํ”„๋กœ์ ํŠธ์— ํ•ฉ์น˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜‘์—… ์‹œ ์•„์ฃผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํˆด์ด๋‹ค. 1. CLI .. 2023. 10. 28.
D.S.) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ฑ๋Šฅ ๋ถ„์„ ์„ฑ๋Šฅ ๋ถ„์„ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ๊ฐ€์žฅ ์ตœ์ ์˜ ๋ฐฉ๋ฒ•์„ ํƒํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ถ„์„ํ•˜๊ณ  ๋น„๊ตํ•œ ํ›„ ๊ฒฐ์ •ํ•ด์•ผํ•œ๋‹ค! ๊ทธ ๋ถ„์„์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ณต๊ฐ„ ๋ณต์žก๋„์™€ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ณต๊ฐ„ ๋ณต์žก๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์‹คํ–‰ํ•˜์—ฌ ์™„๋ฃŒ๊นŒ์ง€ ํ•„์š”ํ•œ ์ด ์ €์žฅ๊ณต๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์‹คํ–‰ํ•˜์—ฌ ์™„๋ฃŒ๊นŒ์ง€ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๋•Œ, ๊ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„œ๋กœ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์ด๋ฏ€๋กœ ์ •ํ™•ํ•œ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ธก์ •๋ณด๋‹ค ์‹คํ–‰ ๋นˆ๋„์ˆ˜๋ฅผ ์ธก์ •ํ•˜์—ฌ ๋น„๊ตํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ฃผ์š” ์„ฑ๋Šฅ ์ฐจ์ด๋Š” ์‹คํ–‰ ์‹œ๊ฐ„ ์ฐจ์ด์—์„œ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ '์„ฑ๋Šฅ ๋ถ„์„ ํ‘œ๊ธฐ'๋Š” '์‹œ๊ฐ„ ๋ณต์žก๋„ ํ‘œ๊ธฐ'๋ฅผ ์˜๋ฏธํ•œ๋‹ค! ๋น…-์˜ค ํ‘œ๊ธฐ๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ์ตœ์•…์˜ ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๋‚˜ํƒ€๋‚ด๋Š” ํ‘œ๊ธฐ๋ฒ•์ด๋‹ค. ์œ„์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ํ†ตํ•ด์„œ O(1) < O(log .. 2022. 4. 26.
๋ฐ˜์‘ํ˜•