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

GIT7

[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.
[Git] git ์ถฉ๋Œ(conflict)์‹œ์— ๊ฐ•์ œ๋กœ pullํ•˜๊ธฐ git fetch --all git reset --hard origin/master (๋ธŒ๋žœ์น˜๋ช…) git pull (remote๋ช…) (๋ธŒ๋žœ์น˜๋ช…) ์ˆ˜์ •ํ•œ ํŒŒ์ผ๋“ค์˜ ์ถฉ๋Œ์ด ๋‚ฌ์„ ๊ฒฝ์šฐ fetch๋กœ ํŒŒ์ผ๋“ค์„ remote ์ €์žฅ์†Œ์—์„œ ์ด์ „ fetch๋“ค์„ ๋ฐ›์€ ํ›„์— ๋กœ์ปฌ์—์„œ hard reset์„ ํ†ตํ•ด ์ถฉ๋Œ ์ „ ์ƒํƒœ๋กœ ๋Œ๋ฆฌ๋Š” ๋ฐฉ์‹! ์ดํ›„ pull์„ ํ•˜๋ฉด remote์—์„œ local๋กœ ๋‹ค์šด์ด ๋ฐ›์•„์ง„๋‹ค~!~! pull - ํ˜„์žฌ ์ž‘์—… ์ค‘์ธ ๋กœ์ปฌ์— commit์„ ๋ณ‘ํ•ฉํ•œ๋‹ค. - ์ปค๋ฐ‹์„ ๋จผ์ € ๊ฒ€ํ† ํ•˜์ง€ ์•Š๊ณ  ์ž๋™์œผ๋กœ ๋ณ‘ํ•ฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ง€์ ์„ ๋ฉด๋ฐ€ํžˆ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ž์ฃผ ์ถฉ๋Œํ•  ์ˆ˜ ์žˆ๋‹ค. fetch - ํ˜„์žฌ branch์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ปค๋ฐ‹์„ ์ˆ˜์ง‘ํ•œ ๋‹ค์Œ ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ €์žฅ - ํ˜„์žฌ ๋กœ์ปฌ์˜ ์ƒํƒœ์™€ ๋ณ‘ํ•ฉํ•˜์ง€ ์•Š๋Š”๋‹ค. - ์ €์žฅ์†Œ๋ฅผ ์ตœ์‹  .. 2022. 7. 1.
[Git] Git ๋ช…๋ น์–ด ๋ชจ์Œ (for me) ๋‚ด๊ฐ€ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋“ค git add . - ๊นƒ์˜ ๊ด€๋ฆฌ ํ•˜์— ๋ชจ๋“  ํŒŒ์ผ์„ ๋‘๊ธฐ git status - ํ˜„์žฌ git์˜ ๊ด€๋ฆฌ ํ•˜์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์˜ ์ƒํƒœ ๋ณด๊ธฐ git commit -m "์ปค๋ฐ‹๋ฉ”์‹œ์ง€" - ์ˆ˜์ • ์‚ฌํ•ญ ์ปค๋ฐ‹ํ•˜๊ธฐ git remote - ์ถ”๊ฐ€ํ•œ ์›๊ฒฉ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ ์ด๋ฆ„ ๋ฐ˜ํ™˜ git branch - ๋กœ์ปฌ ๋ธŒ๋žœ์น˜ ๋ฐ˜ํ™˜ git checkout (๋ธŒ๋žœ์น˜๋ช…) - ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ๋„˜์–ด๊ฐ€๊ธฐ git push (์›๊ฒฉ๋ช…) (๋ธŒ๋žœ์น˜๋ช…) - ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ์— ์˜ฌ๋ฆฌ๊ธฐ --> ๊นƒํ—ˆ๋ธŒ ์ƒˆ๋กœ๊ณ ์นจ ํ›„ ๋ธŒ๋žœ์น˜ ํด๋ฆญ --> ์ถ”๊ฐ€๋จ git pull (์›๊ฒฉ๋ช…) (๋ธŒ๋žœ์น˜๋ช…) - ๊นƒํ—ˆ๋ธŒ์—์„œ ๋‹ค์šด๋ฐ›์•„์•ผ ํ•  ๊ฒƒ ๋กœ์ปฌ๋กœ ๋‹ค์šด๋ฐ›๊ธฐ ๊ทธ ์™ธ ๋ช…๋ น์–ด๋“ค! (๊ณ„์† ์ถ”๊ฐ€ ์ค‘) git remote add "์›๊ฒฉ๋ช…" "๊นƒํ—ˆ๋ธŒ ์ฃผ์†Œ" - ํ˜„์žฌ github ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ๋ฅผ ์ง€์ •.. 2022. 1. 30.
๋ฐ˜์‘ํ˜•