ํ˜ผ์ž์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…๋“ค์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋ผ๋„ git, github๋Š” ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฑธ ๋Š๊ผˆ๋‹ค
git์€ ๋งŒ๋งŒํ•˜์ง€๋งŒ ๋งŒ๋งŒํ•˜์ง€ ์•Š๋‹ค(๋งˆ์น˜ velog์ฒ˜๋Ÿผ)

RPG๊ฒŒ์ž„์„ ํ•ด๋ณธ ์‚ฌ๋žŒ๋“ค์ด๋ผ๋ฉด git์˜ ์ฃผ๊ธฐ๋Šฅ์„ ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ์ •๋ง ์‰ฌ์šธ ๊ฑฐ๋ž€ ์ƒ๊ฐ์ด ๋“ ๋‹ค
๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ด๋ฒคํŠธ์˜ ๋ถ„๊ธฐ์ ๋งˆ๋‹ค save๋ฅผ ํ•ด๋†“์•˜๋˜ ๊ฒฝํ—˜์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค
๋งํ•œ ์ด๋ฒคํŠธ๋ฅผ ๋ดค์„ ๋•Œ saveํฌ์ธํŠธ๋ฅผ loadํ•˜์—ฌ ๋‹ค์‹œ๊ธˆ ์ง„ํ–‰ํ•˜๊ธฐ๋„ ํ•˜๊ณ 
์—ฌ๋Ÿฌ๊ฐ€์ง€ ์—”๋”ฉ ๋ฃจํŠธ๋‚˜ ์ด๋ฒคํŠธ๋ฅผ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด save์™€ load๋ฅผ ๋ฐ˜๋ณตํ–ˆ์„ ๊ฒƒ์ด๋‹ค

๐ŸŒŸ git์ด ํ•˜๋Š” ์ผ์ด save์™€ load๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค
์„ค์น˜๋ถ€ํ„ฐ ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜์ž
Ubuntu๋“ฑ์˜ devian๊ณ„์—ด์˜ ๋ฐฐํฌํŒ์€ ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค
sudo apt-get install

(๋‹ค๋ฅธ install ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญ)

๐ŸŒŸ git์„ ํ†ตํ•ด save์™€ load๋ฅผ ํ•  ํŒŒ์ผ์ด ์–ด๋Š ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์œ„์น˜ํ•˜๋Š”์ง€๊ฐ€ ์ค‘์š”ํ•˜๋‹ค
pwd ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ์ž‘์—… ๊ณต๊ฐ„์„ ์ฒดํฌํ•ด๋ณธ๋‹ค

์ž‘์—… ๊ณต๊ฐ„์„ ์ •ํ–ˆ๋‹ค๋ฉด
ํ„ฐ๋ฏธ๋„์—์„œ๋“  ํŒŒ์ผ๋งค๋‹ˆ์ €์—์„œ๋“  ๋‚ด๊ฐ€ git์„ ์ˆ˜ํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ํŒŒ์ผ๋“ค์ด ์ €์žฅ๋  ํด๋”๋ฅผ ๋งŒ๋“ ๋‹ค
๋‚˜๋Š” prac์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ํด๋”๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค
~/prac/ ์ด๋ผ๋Š” ๊ฒฝ๋กœ๊ฐ€ ์žˆ๊ณ  ๊ทธ ์•ˆ์˜ ํŒŒ์ผ๋“ค์„ git์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ๋‹ค

๐Ÿ›‘ git์„ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์ตœ์ดˆ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค
(์ตœ์ดˆ ์„ค์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ๋“ค์€ ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญ)

๋‚˜๋Š” ์‚ฌ์šฉ์ž ์„ค์ •๋งŒ ํ–ˆ๋‹ค

git config --global user.name "John Doe"
ํฐ๋”ฐ์˜ดํ‘œ("") ์‚ฌ์ด์— ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์ž…๋ ฅํ•œ๋‹ค
git config --global user.email johndoe@example.com
user.email ์ดํ›„์— ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค

--global ์˜ต์…˜์€ git์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ๋งˆ๋‹ค ๋ณ„๋‹ค๋ฅธ ๋ช…๋ น์ด ์—†๋‹ค๋ฉด
--global์œผ๋กœ ์ง€์ •ํ•œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋Š” ๋œป์ด๋‹ค

์ด ์ •๋„๋งŒ ํ•ด์ค˜๋„ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์„ ๋‹ค๋ฃจ๋Š” ๋ฐ์—” ๋ฌธ์ œ๊ฐ€ ์ „ํ˜€ ์—†๋‹ค

์ด์ œ๋ถ€ํ„ฐ git์ด ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š” ๋†ˆ์ธ์ง€ ํ•œ๋ฒˆ ๋ณด๋„๋กํ•˜์ž

์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ git์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•œ๋‹ค

๐Ÿ“Œgit init

์œ„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ์— .git์ด ์ƒ์„ฑ๋œ๋‹ค
์ด๋Š” ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ git๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ค€๋น„๋ฅผ ํ–ˆ๋‹ค๋Š” ๋œป์œผ๋กœ ๋ฐ›์•„๋“ค์ด๋ฉด ๋œ๋‹ค
<์ถœ๋ ฅ>: ~/prac/.git/ ์•ˆ์˜ ๋นˆ ๊นƒ ์ €์žฅ์†Œ๋ฅผ ๋‹ค์‹œ ์ดˆ๊ธฐํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค
์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๋Š”๋ฐ ๊ฒ๋จน์ง€ ๋ง์ž
๋‚˜๋Š” ๋‚ด๊ฐ€ ๋ญ˜ ์ž˜๋ชปํ•œ ์ค„ ์•Œ๊ณ  ๊ฒ๋จน์—ˆ์—ˆ๋‹ค

๐Ÿ“Œgit status ๋ช…๋ น์–ด๋Š” ํ˜„์žฌ ์ผํ•˜๊ณ  ์žˆ๋Š” git์˜ ์ƒํƒœ๋ฅผ ์•Œ๋ ค์ค€๋‹ค

์—ฐ์Šต์„ ํ•˜๋ฉด์„œ git status ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ค‘๊ฐ„์ค‘๊ฐ„ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ์ด๊ฒŒ ๋Œ์•„๊ฐ€๋Š” ๋ชจ์–‘์ƒˆ๊ฐ€ ์–ด๋–ค์ง€๋ฅผ ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ์‰ฝ๋‹ค
git์„ ๋Šฅ์ˆ™ํ•˜๊ฒŒ ๋‹ค๋ฃจ๊ธฐ๋Š” ํž˜๋“ค์ง€๋ผ๋„ ์–˜๊ฐ€ ๋Œ์•„๊ฐ€๋Š” ์›๋ฆฌ๊ฐ€ ๋ณด์ธ๋‹ค

๋ธŒ๋žœ์น˜์— ๋Œ€ํ•ด์„œ๋Š” ์ฒœ์ฒœํžˆ ์•Œ์•„๋ณด๋„๋กํ•˜๊ณ 

์šฐ๋ฆฌ๋Š” '์ปค๋ฐ‹(Commit)'์ด๋ผ๋Š” ๋‹จ์–ด์— ์ง‘์ค‘ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค

๐Ÿ“Œ git commit

git status๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์ถœ๋ ฅ๋˜๋Š” ์ƒํƒœ๋ฅผ saveํฌ์ธํŠธ ์ฆ‰, ๋ถ„๊ธฐ์ ์œผ๋กœ ์‚ผ๊ฒ ๋‹ค๋Š” ๋ช…๋ น์–ด์ด๋‹ค

๊ทธ๋Ÿฐ๋ฐ ์•„๋ฌด ์ค€๋น„๋„ ํ•˜์ง€ ์•Š์€ ์ฑ„ commit๋ฅผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค
โ— git add๋ฅผ ํ†ตํ•ด commit ํ•  ์ƒํƒœ๋ฅผ ์„ ํƒํ•ด๋‘ฌ์•ผ ํ•œ๋‹ค

๊ธ€๋กœ๋งŒ ๋ณด๊ธฐ์—” ๊ฐ์ด ์žกํžˆ์ง€ ์•Š์œผ๋‹ˆ ์ฝ”๋“œ๋ฅผ ๊ตด๋ ค๋ณด๊ฒ ๋‹ค

์ด๋ ‡๊ฒŒ ์„ธ ๊ฐœ์˜ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ฐ ํŒŒ์ผ์˜ ๋‚ด์šฉ์—๋Š”
๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ด๋ฆ„๋งŒ ์ ์–ด๋‘์—ˆ๋‹ค
๋ฐ˜๋“œ์‹œ ํŒŒ์ผ์„ ์ €์žฅํ•œ ์ƒํƒœ์—์„œ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค

๐ŸŒŸ git์ด ํ•˜๋Š” ์ผ์ด RPG๊ฒŒ์ž„์—์„œ์˜ save์™€ load๋ผ๊ณ  ๋งํ–ˆ์—ˆ๋‹ค!
์ด ํŒŒ์ผ๋“ค์„ ์ˆ˜์ •ํ•˜๋ฉด์„œ saveํ•˜๊ณ (commit) loadํ•˜๋ฉด์„œ(reset, revert)
git์ด ํŒŒ์ผ๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์„ ๊ณต๋ถ€ํ•  ๊ฒƒ์ด๋‹ค

ํŒŒ์ผ์„ ์ƒˆ๋กœ ์ƒ์„ฑํ–ˆ์œผ๋‹ˆ ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ์—๋Š” ๋ณ€ํ™”๊ฐ€ ์ผ์–ด๋‚ฌ๋‹ค
git์€ ์ด ๋ณ€ํ™”๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณด๊ณ  ์žˆ์„๊นŒ?
๋ช…๋ น์–ด ์ž…๋ ฅํ•˜์—ฌ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด๋ณธ๋‹ค

๐Ÿ“Œ git status

  • ์•„์ง ์ปค๋ฐ‹์ด ์—†์Šต๋‹ˆ๋‹ค

  • ์ถ”์ ํ•˜์ง€ ์•Š๋Š” ํŒŒ์ผ:
    (์ปค๋ฐ‹ํ•  ์‚ฌํ•ญ์— ํฌํ•จํ•˜๋ ค๋ฉด git add <ํŒŒ์ผ์ด๋ฆ„>์„ ์‚ฌ์šฉํ•˜์„ธ์š”)

์ด๋ ‡๊ฒŒ ๋‘ ์ค„์ด ๋ณด์ธ๋‹ค
์šฐ๋ฆฌ๋Š” ์•„์ง git commit์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์—ฐํžˆ ์ปค๋ฐ‹์ด ์—†๋‹ค๊ณ  ๋œจ๋Š” ๊ฒƒ์ด๊ณ 

โ— ์ถ”์ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋ง์€ ์•„์ง commit์„ ์ˆ˜ํ–‰ํ•  ๋Œ€์ƒ์— ํฌํ•จ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋œป์ด๋‹ค

๊ทธ๋ ‡๋‹ค๋ฉด ์ง€๊ธˆ ์ƒํƒœ๋ฅผ save ์ฆ‰, commitํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”
๋จผ์ € commit์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€์ƒ๋“ค์„ ์ง€์ •ํ•ด์•ผ
ํ•˜๋Š”๋ฐ
๊ทธ ๋ช…๋ น์ด ๋ฐ”๋กœ ์•ž์—์„œ ์„ค๋ช…ํ•œ git add๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค

์ง€๊ธˆ ์ƒํƒœ๋Š” ~/prac/ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์— cat, dog, mouse๋ผ๋Š” ์„ธ ๊ฐœ์˜ ํŒŒ์ผ์ด ์žˆ๊ณ  ๊ฐ ํŒŒ์ผ์˜ ๋‚ด์šฉ์—๋Š” ๊ฐ ๋™๋ฌผ์˜ ์ด๋ฆ„์ด ์ž…๋ ฅ๋˜์–ด ์žˆ๋‹ค

์—ฌ๊ธฐ์„œ ์ด 'ํŒŒ์ผ๋“ค์˜ ์ƒํƒœ'๋ฅผ commitํ•  ์š”์†Œ๋กœ ์ง€์ •ํ•  ๊ฒƒ์ด๋‹ค

๐Ÿ“Œ git add -A

git add๋ฅผ ํ†ตํ•ด saveํ•  ์š”์†Œ๋“ค์„ ์ •ํ•œ๋‹ค๊ณ  ์•ž์„œ ๋ช‡ ๋ฒˆ ์„ค๋ช…ํ–ˆ์—ˆ๋‹ค
ํ•˜์ง€๋งŒ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด๋„ ์•„๋ฌด๋Ÿฐ ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค

git status๋ฅผ ํ†ตํ•ด ์ƒํƒœ๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•ด๋ณด๋ฉด

  • ์•„์ง ์ปค๋ฐ‹์ด ์—†์Šต๋‹ˆ๋‹ค

  • ์ปค๋ฐ‹ํ•  ๋ณ€๊ฒฝ ์‚ฌํ•ญ:
    (์Šคํ…Œ์ด์ง€ ํ•ด์ œํ•˜๋ ค๋ฉด git rm --cached <ํŒŒ์ผ์ด๋ฆ„>์„ ์‚ฌ์šฉํ•˜์„ธ์š”)

์•„์ง git commitํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ์ปค๋ฐ‹์€ ์—†์„ ๊ฒƒ์ด๊ณ 
์ปค๋ฐ‹ํ•  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•œ ํŒŒ์ผ๋“ค์ด ์˜ฌ๋ผ๊ฐ„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค
commit์„ ์ˆ˜ํ–‰ํ•  ๋Œ€์ƒ์œผ๋กœ ์ •ํ–ˆ๋‹ค๋Š” ๋œป์ด๊ณ  ์ด ์ƒํƒœ๋ฅผ ์Šคํ…Œ์ด์ง• ๋˜์—ˆ๋‹ค๊ณ  ๋งํ•œ๋‹ค

๐Ÿ’ก ๊ทธ๋ ‡๋‹ค๋ฉด git add๋ผ๋Š” ๊ฒƒ์€ commitํ•  ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ •ํ•˜๋Š” ๊ฒƒ์ด๊ณ , ์ด ์ž‘์—…์„ ์Šคํ…Œ์ด์ง•์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค

commitํ•  ๋Œ€์ƒ์„ ์ •ํ–ˆ์œผ๋‹ˆ ์ง„์งœ๋กœ ํ•œ๋ฒˆ ์ˆ˜ํ–‰ํ•ด๋ณด์ž

git commit -m "<๋ฉ”๋ชจํ•  ๋‚ด์šฉ>"

saveํฌ์ธํŠธ ์ฆ‰, commitํ•œ ๋‚ด์šฉ์ด ๋ญ”์ง€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฅผ ๋‚จ๊ธด๋‹ค

๋‚˜๋Š” cat_dog_mouse๋กœ ๋ฉ”๋ชจํ–ˆ๋‹ค
git commit -m "cat_dog_mouse"
์ด๋ ‡๊ฒŒ ํ•˜๋ฉด saveํฌ์ธํŠธ ์ฆ‰, commit ์ผ๋ จ๋ฒˆํ˜ธ๊ฐ€ ์ƒ๊ธด๋‹ค

commit์„ ์ˆ˜ํ–‰ํ•œ ํ›„ git status๋ฅผ ํ†ตํ•ด ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด
์ด๋ ‡๊ฒŒ '์ปค๋ฐ‹ํ•  ์‚ฌํ•ญ ์—†์Œ, ์ž‘์—… ํด๋” ๊นจ๋—ํ•จ'์ด๋ผ ์ถœ๋ ฅ๋œ๋‹ค
๋ชจ๋“  ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์Šคํ…Œ์ด์ง•ํ–ˆ๊ณ  ๊ณง์žฅ commit ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค

์šฐ๋ฆฌ๊ฐ€ git์—๊ฒŒ git add๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด
์–ด๋–ค ํŒŒ์ผ์˜ ๊ฐ์‹œ๋ฅผ ๋ถ€ํƒํ•˜๋ฉด
git์€ ๊ทธ ๋Œ€์ƒ์˜ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ๊ทธ ๋ณ€ํ™”๋œ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•ด๋’€๋‹ค๊ฐ€
์šฐ๋ฆฌ๊ฐ€ ์›ํ•  ๋•Œ, ๊ทธ ์ƒํƒœ๋ฅผ saveํฌ์ธํŠธ๋กœ ๋งŒ๋“ค๊ธฐ๋„ ํ•˜๊ณ 
๊ทธ ์ƒํƒœ๋ฅผ ๋ณต๊ตฌ์‹œํ‚ค๊ธฐ๋„ ํ•œ๋‹ค

<save.01> cat_dog__mouse / cat: tom, dog: bull, mouse: jerry

์ด์ œ ํŒŒ์ผ์— ์†Œ์†Œํ•œ ๋ณ€ํ™”๋ฅผ ์ฃผ๋ฉด์„œ saveํฌ์ธํŠธ๋ฅผ ๋” ๋งŒ๋“ค์–ด๋ณธ๋‹ค

whale์ด๋ผ๋Š” ํŒŒ์ผ์„ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๊ณ  ๋‚ด์šฉ์— ์ƒ๊ฐ๋‚˜๋Š” ์ด๋ฆ„์„ ๋„ฃ์–ด๋ณด์ž
๋‚˜๋Š” ๋‚ด์šฉ์— bob์„ ์ ์—ˆ๋‹ค

commit์„ ์ˆ˜ํ–‰ํ•œ ํ›„ ์ฒ˜์Œ์œผ๋กœ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ณ€ํ™”๊ฐ€ ์ƒ๊ฒผ๋‹ค
git์€ ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— git status๋กœ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค

๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ƒ๊ฒผ์ง€๋งŒ ์•„์ง ์šฐ๋ฆฌ๊ฐ€ ํ•ด๋‹น ํŒŒ์ผ์— ๋Œ€ํ•ด์„œ๋Š”
git add๋ช…๋ น์„ ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์Šคํ…Œ์ด์ง•์€ ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋‹ค
์ด๋ฅผ ํ†ตํ•ด git์ด ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ƒ๊ธฐ๋Š” ๋ณ€ํ™”๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณด๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค

์ด์ฏค๋˜๋ฉด git์ด ๋Œ์•„๊ฐ€๋Š” ์›๋ฆฌ๊ฐ€ ์™„์ „ํžˆ ์ดํ•ด๋˜์ง€ ์•Š์„์ง„ ๋ชฐ๋ผ๋„
๋Œ€์ถฉ์˜ ๋ถ„์œ„๊ธฐ๋Š” ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค

์—ฌ๊ธฐ์— mouseํŒŒ์ผ์„ ์‚ญ์ œํ•ด์„œ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ๋ณ€ํ™”๋ฅผ ์ฃผ๊ณ 
๊ทธ ํ›„ git add -A์™€ git commit์„ ํ†ตํ•ด saveํฌ์ธํŠธ๋ฅผ ํ•˜๋‚˜ ๋” ๋งŒ๋“ ๋‹ค

๋‘ ๋ฒˆ์งธ commit๊นŒ์ง€ ์™„๋ฃŒํ–ˆ๋‹ค

<save.02>
WhaleComes_MouseOut / cat: tom, dog: bull, whale: bob, mouse: jerry

<save.01>
cat_dog_mouse / cat: tom, dog: bull, mouse: jerry

์„ธ ๋ฒˆ์งธ commit๊นŒ์ง€ ์ˆ˜ํ–‰ํ•œ ํ›„
๐Ÿ‘‡ git reset๋ช…๋ น์–ด์™€ ๐Ÿ‘‡ git revert๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด๋ณผ ๊ฒƒ์ด๋‹ค

์ด๋ฒˆ์—” penguin์„ ์ถ”๊ฐ€ํ•˜๊ณ  cat์˜ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๋Š” ๋ณ€ํ™”๋ฅผ ๋งŒ๋“ค์–ด์„œ
git commitํ•ด๋ณผ ๊ฒƒ์ด๋‹ค
penguinํŒŒ์ผ์˜ ๋‚ด์šฉ์€ ping9๋กœ ํ•˜๊ณ  cat์˜ ๋‚ด์šฉ์€ gilnyang์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค


์ง„์งœ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ๋งŒ ๋”ฑ๋”ฑ ์ง‘์–ด๋‚ด๋Š” ๊ฒŒ ๋†€๋ผ์šธ ๋”ฐ๋ฆ„์ด๋‹ค
์•„๋ฌดํŠผ ์—ฌ๊ธฐ์— ๋Œ€ํ•ด์„œ๋„

git add -A
git commit -m "<๋ฉ”๋ชจ๋‚ด์šฉ>"

์„ธ ๋ฒˆ์งธ commit์„ ์™„๋ฃŒํ–ˆ๋‹ค

<save.03> penguinComes / cat: gilnyang, dog: bull, whale: bob, penguin: ping9, mouse: jerry

<save.02> WhaleComes_MouseOut / cat: tom, dog: bull, whale: bob, mouse: jerry

<save.01> cat_dog_mouse / cat: tom, dog: bull, mouse: jerry

์ง€๊ธˆ๊นŒ์ง€ commit ํ•ด์˜จ ์ง€์ ๋“ค์˜ ์ƒํƒœ๋Š” ์œ„์™€ ๊ฐ™๋‹ค
์ด์ œ save.03์˜ ์ƒํƒœ์—์„œ git์˜ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด ์•ž์œผ๋กœ ๋Œ์•„๊ฐ€๋ณผ ๊ฒƒ์ด๋‹ค

๋จผ์ € ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด commit์˜ log๋ฅผ ์‚ดํŽด๋ณด์ž

๐Ÿ“Œ git log

commit์„ ์ˆ˜ํ–‰ํ–ˆ๋˜ ๊ธฐ๋ก๋“ค์ด ๋‹ค ๋‚จ์•„์žˆ๋‹ค
์šฐ๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ์€ ๊ฐ ์ปค๋ฐ‹์˜ ์ผ๋ จ๋ฒˆํ˜ธ ์•ž 6์ž๋ฆฌ์ด๋‹ค
๐Ÿ‘‡ git reset๋ช…๋ น์–ด์™€ ๐Ÿ‘‡ git revert๋ช…๋ น์–ด์—๋Š” ์ปค๋ฐ‹์˜ ์ผ๋ จ๋ฒˆํ˜ธ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค

์ด์ œ ์ง€๊ธˆ ์ƒํ™ฉ์—์„œ ์ „์˜ saveํฌ์ธํŠธ๋กœ ๋Œ์•„๊ฐ€๋ณผ ์ฐจ๋ก€๋‹ค

  • ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค
  1. ํ˜„์žฌ ์ƒํƒœ๋ฅผ ํ•˜๋‚˜์˜ saveํฌ์ธํŠธ๋กœ ๋งŒ๋“ค๊ณ  ์ด์ „์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
  2. ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์™„์ „ํžˆ ์ง€์šฐ๊ณ  ์ด์ „์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ

์ผ๋‹จ์€ 1๋ฒˆ ๋ฐฉ๋ฒ•์„ ์จ๋ณด์ž
ํ˜„์žฌ ์ƒํƒœ๋ฅผ commitํ•˜๋ฉด์„œ ์ด์ „์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค

๐Ÿ“Œ git rivert <commit์˜ ์ผ๋ จ๋ฒˆํ˜ธ ์•ž 6์ž๋ฆฌ>

save.02์˜ ์ƒํƒœ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค๋ฉด
git rivert <save.02์˜ ์ผ๋ จ๋ฒˆํ˜ธ ์•ž 6์ž๋ฆฌ>๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค

๐Ÿ˜จ๐Ÿ˜จ๐Ÿ˜จ๐Ÿ˜จ ์ผ๋‹จ ๋‚˜๋Š” ๋งํ–ˆ๋‹ค

์ด ์•…๋ฌผ๊ณ  ์–ต์ง€ rivert๋ฅผ ํ–ˆ๋Š”๋ฐ ์•„๋ฌดํŠผ ๋ง›์ด ๊ฐ”๋‹ค
๊ต‰์žฅํžˆ ๋‹นํ˜น์Šค๋Ÿฝ๋‹ค
ํ•˜์ง€๋งŒ ์•ˆ ํ•  ์ˆ˜ ์—†๋‹ค;
์•„์ง ํ•˜๋‚˜ ๋‚จ์•˜๋‹ค

2๋ฒˆ ๋ฐฉ๋ฒ•์„ ์จ๋ณผ ๊ฒƒ์ด๋‹ค
ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์™„์ „ํžˆ ์ง€์šฐ๊ณ  ์ด์ „์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ

๐Ÿ“Œ git reset <commit์˜ ์ผ๋ จ๋ฒˆํ˜ธ ์•ž 6์ž๋ฆฌ>

์ด๋ฒˆ์—” ์ œ๋ฐœ ๊ทธ๋ƒฅ ๋˜๊ธธ ๋ฐ”๋ผ๋ฉด์„œ ๊ธ€์„ ์“ด๋‹ค
์ด๋ฒˆ์—๋„ ์ž˜ ์•ˆ๋˜๋ฉด ์šธ ์ˆ˜๋„ ์žˆ๋‹ค

save.02์ƒํƒœ์— ์™€์žˆ์œผ๋‹ˆ save.01๋กœ ๋Œ์•„๊ฐ€๋ณด๊ฒ ๋‹ค
save.01์˜ ์ƒํƒœ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ๋‹ˆ๊นŒ
git rivert <save.01์˜ ์ผ๋ จ๋ฒˆํ˜ธ ์•ž 6์ž๋ฆฌ>๋ฅผ ์ž…๋ ฅ

๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ ์„ฑ๊ณตํ–ˆ๋‹ค

๐Ÿ›‘ git reset
๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ๊ฒฝ๊ณ ๊ฐ€ ๋œจ๊ฑฐ๋‚˜ ์†Œ์Šค์ œ์–ด ํƒญ์— ์‹ ํ˜ธ๊ฐ€ ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค
์ด ๋ณ€๊ฒฝ์„ ํ—ˆ๊ฐ€ํ•  ์‹œ ํŒŒ์ผ์ด ์‚ญ์ œ๋˜๊ณ  ํŒŒ๊ดด๋œ ๋ฐ์ดํ„ฐ๋Š” ๋Œ๋ฆด ์ˆ˜ ์—†๋‹ค
๋ญ ์ด๋Ÿฐ ํ˜‘๋ฐ•์„ฑ ๊ฒฝ๊ณ ๊ฐ€ ๋œจ๋Š”๋ฐ ์ด๊ฑด ๋‹น์—ฐํ•œ ๊ฒƒ์ด๋‹ค(์Šคํฌ๋ฆฐ์ƒท ๋ชป ์ฐ์—ˆ์Œ)
์ „์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ณผ์ •์— ์ผ์–ด๋‚˜๋Š” ์‚ญ์ œ์— ๋Œ€ํ•ด ๋ฌป๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์‚ญ์ œ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ๋˜๊ฒ ๋‹ค

๋งˆ์ง€๋ง‰์œผ๋กœ git log๋ฅผ ํ†ตํ•ด ํ™•์ธ

์ด๊ฑธ๋กœ ๋๋‚ฌ๋‹ค

๊ต‰์žฅํžˆ ์–ด์„คํ”ˆ ํŠœํ† ๋ฆฌ์–ผ์ด ๋˜์—ˆ๋‹ค

๋ฒจ๋กœ๊ทธ๋Š” ํ‹ฐ์Šคํ† ๋ฆฌ๋ณด๋‹ค ๋ณต์žกํ•œ ๊ฒƒ ๊ฐ™๋‹ค
๊ทธ๋ž˜๋„ ์“ฐ๋Š” ๋ง›์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— tmux ํŠœํ† ๋ฆฌ์–ผ๋„ ์˜ฎ๊ฒจ ์ ์–ด ๋ด์•ผ๊ฒ ๋‹ค

๋

0๊ฐœ์˜ ๋Œ“๊ธ€