Git์ ๋ฒ์ ๊ด๋ฆฌ ๋๊ตฌ๋ฅผ ์๋ฏธํจ
๋ฒ์ ๊ด๋ฆฌ ๋๊ตฌ๋ ํน๋ณํ ๊ฒ ์๋๊ณ RPG๊ฒ์์์ ์ธ์ด๋ธํ๋ ๊ฒ์ฒ๋ผ ํน์ ์์ ์ ์ ์ฅํ๊ณ ๋ง์๋๋ก ์ด๋ํ ์ ์๋ ๋๊ตฌ๋ผ๊ณ ์๊ฐํ๋ฉด๋จ
Git์ผ๋ก ๊ด๋ฆฌํ๋ ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฌ ์ฌ๋๋ค๊ณผ ์ฌ์ฉํ ์ ์๋๋ก ์จ๋ผ์ธ์์ ์ฌ๋ ค๋๊ณ ์ฌ์ฉํ๋ ํธ์คํ
์ฌ์ดํธ์ค ํ๋๊ฐ GitHub์
๋จ์ด ๊ทธ๋๋ก ๋ด ์ปดํจํฐ์ ์ ์ฅ์๋ฅผ ์๋ฏธํจ, ์ฆ ๋ด ์ปดํจํฐ์์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ๋ ํด๋
ํ์ฌ ๋ก์ปฌ์ ์ฅ์๊ฐ ๊ฐ๋ฆฌํค๋ ๋ธ๋์น์ ์ปค๋ฐ์ ์๋ฏธํจ
HEAD๊ฐ ํฌ์ธํฐ๋ฉด์ ํ์ฌ ๊ฐ๋ฆฌํค๋ ๋ธ๋์น์ ์ปค๋ฐ์ ์ค๋
์ท์ ๋ก์ปฌ์ ์ฅ์์ ๋ณด์ฌ์ค
๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ ํด๋๋ฅผ ์ง์ ํ๋ ๋ช
๋ น์ด
์ฆ, Git์ ์ฌ์ฉํ๋ ๊ฒ์ ์ง์ ํ๋ ๋ช
๋ น์ด์
๋ด๋ถ์ .git์ด๋ผ๋ ์จ๊นํด๋๊ฐ ์์ฑ๋๋ฉฐ ๋ฒ์ ์ ๋ณด, ์๊ฒฉ์ ์ฅ์์ ๋ณด ๋ฑ์ด ์ ์ฅ๋จ
๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ๋ ์ฃผ์ฒด๊ฐ ๋๊ตฌ์ธ์ง ์ง์ ํ๋ ๋ช
๋ น์ด
GitHub์ ๋ฑ๋กํ ์ด๋ฉ์ผ๊ณผ ์ด๋ฆ๊ณผ ๋์ผํ๊ฒ ์ง์ ํด์ผ ์ฐ๋์ด ๊ฐ๋ฅํจ
1. $ git config --global user.email <"์ด๋ฉ์ผ">
2. $ git config --global user.name <"์ด๋ฆ">
์ํ๋ณ๊ฒฝ ๋์ค์ ์ถ๊ฐ
-m: ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ๊ฐ๋จํ๊ฒ ํ ์ค ์ง๋ฆฌ๋ก ์ง์ -a: untracked์ ์ ์ธํ๊ณ ๋ณ๊ฒฝ์ฌํญ ์๋์ผ๋ก addํ๊ณ ์ปค๋ฐ์ปค๋ฐํ ์ ๋ณด์ด๋ ฅ์ ๋ณด์ฌ์ค
--oneline: ํ ์ค๋ก ๊ฐ๋จํ๊ฒ ์ด๋ ฅ์ ๋ณด์ฌ์ค-n์ซ์: ์ต์ ๊ฒ๋ถํฐ ์ซ์๊ฐ์๋งํผ ๋ณด์ฌ์ค--graph: ์ด๋ ฅ์ ๊ทธ๋ํ์ฒ๋ผ ๋ณด๊ธฐ์ข๊ฒ ๋ณด์ฌ์ค--decorate: ๋ธ๋์น์ ํ๊ทธ ๋ฑ์ ์ฐธ์กฐ๋ฅผ ๊ฐ๋จํ๊ฒ ๋ณด์ฌ์คํน์ ์ปค๋ฐ์ด๋ ๋ธ๋์น๋ก ์ด๋ํ๋ ๋ช
๋ น์ด
1. $ git checkout -: ์ต์ ์ปค๋ฐ์ผ๋ก ์ด๋
-b: ์๋ก์ด ๋ธ๋์น ์์ฑํ ์ฒดํฌ์์์๊ฒฉ์ ์ฅ์์ ๋ก์ปฌ์ ์ฅ์๋ฅผ ์ฐ๊ฒฐ์ํค๋ ๋ช ๋ น์ด
origin์ผ๋ก ์ง์์๊ฒฉ์ ์ฅ์์ ๋ด์ฉ์ ๋ด ๋ก์ปฌ์ ์ฅ์์ ๋ณต์ฌ
$ git clone <์๊ฒฉ์ ์ฅ์์ฃผ์> .: ์๋ก์ด ํด๋ ์์ฑํ์ง์๊ณ ํ์ฌ ํด๋์ ๋ณต์ฌ๋๋ถ๋ถ ์๊ฒฉ์ ์ฅ์์ด๋ฆ์ origin์ด๊ณ , ์ด๊ธฐ๋ธ๋์น์ด๋ฆ์ master or main์
$ git push origin master-u: unstream์ง์ , ํ๋ฒ ์ง์ ํ๋ฉด ๋ค์๋ถํฐ ์๋์ผ๋ก ์ง์ ๋จ๋ธ๋์น์ ๊ด๋ จ๋ ๊ฒฐ๊ณผ๋ฅผ ์คํํ๋ ๋ช ๋ น์ด
$ git branch: ๋ธ๋์น ๋ฆฌ์คํธ ๋ฐ ํ์ฌ ๋ธ๋์น ๋ณด์ฌ์ค$ git branch <๋ธ๋์น์ด๋ฆ>: ์๋ก์ด ๋ธ๋์น ์์ฑ-v: ๋ธ๋์น ๋ชฉ๋ก๊ณผ ๋ง์ง๋ง ์ปค๋ฐ์ ๋ณด์ฌ์ค-f: ?-d: ๋ธ๋์น ์ญ์ -D: ๋ธ๋์น ๊ฐ์ ์ญ์ ๋ธ๋์น๋ฅผ ์ด๋ํ๋ ๋ช ๋ น์ด
ํ์ฌ ์ฌ์ฉ์ค์ธ ๋ธ๋์น์ ๋ธ๋์น์ด๋ฆ์ ์ ์ ๋ธ๋์น๋ฅผ ๋๊ฐ ํฉ์นจ
ํ์ฌ ๋ก์ปฌ์ ์ฅ์์ ์ํ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ช
๋ น์ด
์ํ๋ untracked, staged, unmodified, modified๋ฅผ ์๋ฏธ
ํ์ฌ ๋ธ๋์น์ ์ปค๋ฐ์ ์ทจ์ํ๋ ๋ช
๋ น์ด
$ git reset๋ง ๋จ๋
์ผ๋ก ์ฌ์ฉํด์ add๋ฅผ ์ทจ์ํ๊ธฐ๋ ํจ
--soft: ํ์ฌ๊น์ง ๋ณ๊ฒฝ์ฌํญ ์ ์งํ๊ณ ์ปค๋ฐ์ ์ทจ์ํ์ง๋ง staged์ํ๋ ์ ์ง--mixed: ํ์ฌ๊น์ง ๋ณ๊ฒฝ์ฌํญ ์ ์งํ๊ณ ์ปค๋ฐ์ ์ทจ์ํ๋ฉฐ add๊น์ง ์ทจ์๋จ--hard: ํ์ฌ๊น์ง ๋ณ๊ฒฝ์ฌํญ ๋ชจ๋ ์ ๊ฑฐํ๊ณ ์ปค๋ฐ์ ์ทจ์ํจ~<์ซ์>: ์ซ์๋ฒ์งธ ์กฐ์์ ์๋ฏธ
^<์ซ์>: ?
( ์ซ์๋ ์๋ต์ 1 )
$ git reset --soft HEAD~1 : ๋ฐ๋ก ์ด์ ์ปค๋ฐ์ผ๋ก ๋๋๋ฆฌ๋ฉฐ, ํ์ฌ ๋ณ๊ฒฝ์ฌํญ์ ์ ์งํจ
$ git reset์ฒ๋ผ ์ปค๋ฐ์ ์ทจ์ํ๋ ๊ธฐ๋ฅ์ด์ง๋ง revert๋ ์ด๋ ฅ์ ๋จ๊ธฐ๋ฉด์ ์ปค๋ฐ์ ์ทจ์ํ๋ ๋ช
๋ น์ด์
์ด์ ์ปค๋ฐ๋ถํฐ ํ์ฌ๊น์ง ๋ณ๊ฒฝ์ฌํญ์ ์์ ๊ณต๊ฐ์ ๋ฃ์ด๋๊ณ ํ์ฌ ์ํ๋ฅผ ์ด๊ธฐํํ๋ ๋ช ๋ น์ด
์ปค๋ฐ์ ๋ณ๊ฒฝ์ฌํญ๋ง ์ ์ฅํ๋ ๊ฒ์ด ์๋๊ณ ์ปค๋ฐํ ์ํ์ ๋ชจ๋ ๊ฒ์ด ์ ์ฅ๋จ
์ปค๋ฐ์ด ๋ช ๋ฒ ์์ ๊ฒฝ์ฐ์๋ ๋ณ๊ฒฝ์ฌํญ๋ง ์ ์ฅํ๋ ๊ฒ์ด ํจ์จ์ ์ด๊ฒ ์ง๋ง,
๋ง์ฝ ์ปค๋ฐ์ด 10000๋ฒ ๋์๋ค๊ณ ์๊ฐํด ๋ดค์ ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ์ํด์๋ ์ด์ ์ ๋ชจ๋ ์ปค๋ฐ์ธ 10000๋ฒ์ ์ปค๋ฐ์ ๋ถ๋ฌ์์ผ ํ๋ฏ๋ก ๋ ๋นํจ์จ์ ์ด๊ฒ ๋จ
untracked: ํ ๋ฒ๋ ์ปค๋ฐ๋์ง ์๊ณ , addํ์ง๋ ์์ ํ์ผstaged: addํ ์ํ ( commit ๋๊ธฐ์ํ )unmodified: commitํ ์ํ ์ฆ, ํ๋์ ์ค๋
์ท์ ์ฐ์ ์ํmodified: ์ค๋
์ท์ ์๊ฒฉ์ ์ฅ์์ pushํ ์ํMerge commit: ์๋ก ๋ค๋ฅธ ๋๊ฐ์ ๋ธ๋์น๊ฐ ์ถฉ๋์์ด ํฉ์ณ์ง๋ ๊ฒFast-forward: ์์ ์ ๋ฟ๋ฆฌ์ ํด๋นํ๋ ๋ธ๋์น์ ํฉ์น๋ ๊ฒฝ์ฐConflict: ์๋ก ๋ค๋ฅธ ๋ธ๋์น๋ฅผ ํฉ์น๋๋ฐ ์ถฉ๋์ด ์๊ธฐ๋ ๊ฒฝ์ฐ๋ค๋ฅธ ์ฌ๋์ ์คํ์์ค์ ์ฐธ์ฌํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ฌ์ฉํจ
ํฌํฌํ ์์ค์ฝ๋๋ฅผ ๋ชจ๋ ๋์ ๊น์ ์ถ๊ฐํ๊ณ ๋ด๊ฐ ์์ ํ๋ค ์์์์๊ฒ ํ๋ฆฌํ์คํธ๋ฅผ ๋ณด๋ด๋ ํ์์
์๋ฌด์๊ฒ๋ ์ฐ๊ธฐ๊ถํ์ ๋ถ์ฌํ๋ฉด ์ฝ๋๊ฐ ๋ง๊ฐ์ง ์ ์๊ธฐ๋๋ฌธ์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ

์ฐธ๊ณ ํ ์๋ฃ
ํ๊ฐ๋ฐ์ ์ํ Git GitHub์์ํ๊ธฐ - ์ ํธ์, ์ง์ ๋ฆผ ์ง์