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

Git

(5)
[ GitHub Action ] GitHub Action์„ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ CI/CD ์„ธํŒ…ํ•˜๊ธฐ. GitHub Action GitHub Action์€ ๋นŒ๋“œ์™€ ํ…Œ์ŠคํŠธ, ๊ฐœ๋ฐœ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” CI/CD(์ง€์†์ ์ธ ํ†ตํ•ฉ/์ง€์†์ ์ธ ๋ฐฐํฌ) ํ”Œ๋žซํผ์œผ๋กœ, Git ์ €์žฅ์†Œ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์ž๋™ํ™”๋œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์ด๋Ÿฌํ•œ ์ž‘์—…์€ Git ์ €์žฅ์†Œ์˜ ์ƒํƒœ ๋ณ€๊ฒฝ, ์ƒˆ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ, ์ฝ”๋“œ ํ‘ธ์‹œ, ์ด์Šˆ ๋“ฑ๋ก, Pull Request ๋“ฑ์„ ๋Œ€์ƒ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ PR ๋˜๋Š” ์ƒ์šฉ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ merged PR ๋นŒ๋“œ์™€ ํ…Œ์ŠคํŠธ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. Git Action์„ ์‚ฌ์šฉํ•˜๋ฉด ์ €์žฅ์†Œ์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ง€์ •๋œ ์ž‘์—…์ด ์‹คํ–‰๋˜์–ด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฝ”๋“œ ํ‘ธ์‹œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ์ž๋™์œผ๋กœ ์ฝ”๋“œ ํ…Œ์ŠคํŠธ, ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ˆ˜ํ–‰ํ• ..
[ Git / ์‚ญ์ œ๋ณต๊ตฌ ] ์‚ญ์ œํ•œ ํŒŒ์ผ์ด๋‚˜ ํด๋”๋ฅผ commit์— ์ถ”๊ฐ€ํ•˜์—ฌ push ํ•˜๊ธฐ. ์ƒํ™ฉ ์„ค๋ช… ์˜ˆ๋ฅผ ๋“ค์–ด feature ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋˜ ๋ธŒ๋žœ์น˜ A๊ฐ€ ์žˆ๋‹ค. ๋ธŒ๋žœ์น˜ A์—์„œ example์ด๋ผ๋Š” ํŒŒ์ผ(๋˜๋Š” ํด๋”)์„ ์‚ญ์ œํ–ˆ๋‹ค๊ณ  ์น˜์ž. ๊ทธ๋ฆฌ๊ณ  exampleํŒŒ์ผ์˜ ์‚ญ์ œ์— ๋Œ€ํ•œ ์ปค๋ฐ‹์„ ํ•˜๊ณ , ์›๊ฒฉ ์ €์žฅ์†Œ์— push๋ฅผ ํ•œ ๋’ค, ๋ธŒ๋žœ์น˜A์˜ ๊ธฐ๋Šฅ์„ ์ญ‰ ๊ฐœ๋ฐœํ•˜๊ณ  ์ปค๋ฐ‹ํ•˜์—ฌ ์›๊ฒฉ ์ €์žฅ์†Œ์— push๋ฅผ ํ•˜์—ฌ, exampleํŒŒ์ผ ์‚ญ์ œ ์ปค๋ฐ‹&push ์ดํ›„์—๋„ ๋งŽ์€ ์ปค๋ฐ‹์ด ์ถ”๊ฐ€๋œ ์ƒํƒœ์—์„œ ๋ธŒ๋žœ์น˜A์— ์ด์ „์— ์‚ญ์ œํ–ˆ๋˜ exmaple ํŒŒ์ผ์ด ํ•„์š”ํ•˜์—ฌ ์‚ญ์ œ์— ๋Œ€ํ•œ ๋ณต๊ตฌ๋ฅผ ์ง„ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์•„๋ž˜์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ์ƒํ™ฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด ๋ณด์ž. ์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ ์–ด๋–ป๊ฒŒ ์‚ญ์ œ๋œ exampleํŒŒ์ผ์„ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์ด๋Ÿด ๋• ๋งจ ๋ฐ‘์— ์ž‘์—…ํ•œ example ํŒŒ์ผ ์‚ญ์ œ์— ๋Œ€ํ•œ ์ปค๋ฐ‹์— ๋Œ€ํ•ด revert๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด ๊ฐ„๋‹จํžˆ ํ•ด๊ฒฐ๋œ๋‹ค. git log gi..
[ Git ] git revert ์ดํ›„์— master๋ธŒ๋žœ์น˜์— merge ํ•˜๊ธฐ. ์ด์งํ•˜๊ณ  ์ฒซ ์ฃผ์— ์‹์€๋•€ ๋‚˜๋Š” ์ผ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ PR ํ™•์ธ๋งŒ ํ•ด์ฃผ๋ฉด ๋˜๋Š”๊ฑฐ์˜€๋Š”๋ฐ.. ๋ณ„ ์ƒ๊ฐ์—†์ด ์Šต๊ด€์ฒ˜๋Ÿผ ๋‚ด๊ฐ€ PR merge๋ฅผ ํ•ด๋ฒ„๋ ธ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ PR merge๋ฅผ ํ–ˆ๋˜ ์ปค๋ฐ‹์— ๋Œ€ํ•ด revert๋ฅผ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ, revert์ดํ›„์— ๋‹ค์‹œ master ๋ธŒ๋žœ์น˜์— merge๋ฅผ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ, ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†๋‹ค๊ณ  ๋‚˜์˜ค๋ฉด์„œ merge๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋‹ค.......!!๐Ÿ™€ ์ด์Šˆ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํ™ฉ. - ๊ธฐ์กด master branch๊ฐ€ ์žˆ๊ณ , feature branch๊ฐ€ ์กด์žฌ. - feature branch๋ฅผ master branch์— merge๋ฅผ ํ•จ. - merge๋œ master branch๋ฅผ git revert ์ง„ํ–‰ํ•จ. - ์ดํ›„ ๋‹ค์‹œ feature branch๋ฅผ master branch์— merge ํ•˜๋ ค๊ณ  ์‹œ๋„..
[ Git ] ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ธŒ๋žœ์น˜ git push ํ•˜๊ธฐ ์˜ˆ์ „์—๋Š” ์†Œ์ŠคํŠธ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ปค๋ฐ‹์„ ํ•˜๊ณ  push๋ฅผ ์ง„ํ–‰ํ–ˆ์ง€๋งŒ, ์†Œ์ŠคํŠธ๋ฆฌ ํŠ•๊ธฐ๋Š” ํ˜„์ƒ๋„ ์žฆ๊ณ  ๋˜ ์‹œ๊ฐ„ ์ ˆ์•ฝ์„ ์œ„ํ•ด์„œ ๋‚˜๋Š” ๋ณดํ†ต ์ปค๋ฐ‹๊ณผ push๋ฅผ ๋ช…๋ น์–ด๋กœ ์ง„ํ–‰ํ•œ๋‹ค. ์ด์ œ๋Š” ์Šต๊ด€์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋Š” ์œ ์šฉํ•œ ๊นƒ ๋ช…๋ น์–ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ฐธ๊ณ  git-scm.com 1. git status๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ์ž‘์—… ์ƒํƒœ๋ฅผ ํ™•์ธ git status ์ฐธ๊ณ  $ git status git status๋Š” ์ธ๋ฑ์Šค ํŒŒ์ผ๊ณผ ํ˜„์žฌ HEAD ์ปค๋ฐ‹ ์‚ฌ์ด์— ์ฐจ์ด๊ฐ€ ์žˆ๋Š” ๊ฒฝ๋กœ ๋ฐ ์ž‘์—… ํŠธ๋ฆฌ์˜ ๊ฒฝ๋กœ๋ฅผ ํ‘œ์‹œํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” git commit์„ ์‹คํ–‰ํ•˜์—ฌ ์ปค๋ฐ‹ํ•  ๋‚ด์šฉ์ด๊ณ , ๋‘ ๋ฒˆ์งธ์™€ ์„ธ ๋ฒˆ์งธ๋Š” git commit์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ์‚ฌํ•ญ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 2. git์— ์ปค๋ฐ‹ํ•  ์‚ฌํ•ญ ์ถ”๊ฐ€ ์Šคํ…Œ์ด์ง€์— ์˜ฌ๋ฆด ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋“ค์„ ์ง€์ •ํ•˜๋Š” ๋‹จ๊ณ„ ์ด๋‹ค..
[ Git / pull ๋ฎ์–ด์“ฐ๊ธฐ ] ๋กœ์ปฌ์— origin ๊ฐ•์ œ ๋ฎ์–ด์“ฐ๊ธฐ. 1. ๋‚˜์˜ ๋กœ์ปฌ์— pull ๋ฐ›์„ ์›๊ฒฉ ๋ชฉ๋ก ์—…๋ฐ์ดํŠธ. $ git fetch --all 2. git reset --hard ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์›๊ฒฉ์—์„œ pull ๋ฐ›์„ (๋ฎ์–ด ์”Œ์šฐ๊ณ  ์‹ถ์€) ๋ธŒ๋žœ์น˜ ๋ช… ์ž…๋ ฅ. ( git reset ๋ช…๋ น์–ด์—๋Š” --soft, --mixed, --hard ์˜ต์…˜์ด ์กด์žฌํ•œ๋‹ค. --hard๋Š” ๊ฐ•์ œ๋กœ reset ํ•˜๋Š” ์˜ต์…˜.) $ git reset --hard origin/master // git reset --hard 3. git pull ๋˜๋Š” git status ๋ฅผ ํ†ตํ•ด ์ƒํƒœ ํ™•์ธ. $ git pull $ git status