Git ์ด๊ธฐ ์ค์
ํ๋ก์ ํธ ๋๋ ํฐ๋ฆฌ์ ๋ค์ด๊ฐ์, 'git init' ๋ช ๋ น์ ์ ๋ ฅํ๋ค.
Initialized empty Git repository in ~~๊ฐ ๋ฌ๋ค๋ฉด ์ ์์ ์ผ๋ก ์คํ๋ ๊ฒ
ํ๋ก์ ํธ๋ ์ด์ git์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ ์ํ
$ cd [ํ๋ก์ ํธ๋ช
]
$ git init
์ฆ, ํ๋ก์ ํธ ๋ด๋ถ์ .git์ด๋ผ๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ฑ๋ ๊ฒ์ด๋ฉฐ
git์ .git ๋๋ ํฐ๋ฆฌ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ๊ธฐ ์ํด ํ์ํ ๊ฒ๋ค์
์์์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํจ์ผ๋ก์จ ์ฐ๋ฆฌ๊ฐ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ ์ ์๋๋ก ๋์์ค.
Git ์ฌ์ฉ์ ์ ๋ณด ์ค์
์ค์ (configuration)์ ์๋ฏธํ๋ config๋ฅผ ํตํด ํ์ฌ git์ ์ฌ์ฉํ๋ user name๊ณผ user email์ ์ค์ .
ํ๋ก์ ํธ ๋๋ ํฐ๋ฆฌ์ ๋ฒ์ ์ ๋จ๊ธธ ๋๋ง๋ค ๊ทธ ๋ฒ์ ์ ๋จ๊ธด ์ฌ๋์ ์ ๋ณด์ ๋ฐฉ๊ธ ์ ์ ์ด๋ฆ๊ณผ ์ด๋ฉ์ผ์ด ์ค์ ๋จ.
$ git config user.name "{์ฌ์ฉ์ ์ด๋ฆ}"
$ git config user.email "{์ฌ์ฉ์ ์ด๋ฉ์ผ}"
Commit
ํน์ ๋ฒ์ ์ ์ ์ฅํ๋ ๊ฒ์ ์ปค๋ฐ(Commit)ํ๋ค๊ณ ํจ.
ํน์ ๋ฒ์ = ์ปค๋ฐ
1. Working Directory
๋ด๊ฐ ์ค์ ๋ก ๋ค๋ฃจ๊ณ ์๋ ํ๋ก์ ํธ ๋๋ ํฐ๋ฆฌ ์์ฒด๋ฅผ ์๋ฏธ
2. Staging Area
ํน์ ๋ฒ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ถ์ ํ์ผ๋ค์ ๋ชจ์๋๋ ์ฅ์
3. Repository๊ธฐํน์ ์์ ์ staging area์ ๋ชจ์ต์ ์ปค๋ฐ์ผ๋ก ๋จ๊ธฐ๋ฉด ๊ทธ ์ปค๋ฐ๋ค์ด ์ ์ฅ๋๋ ์์ญ
0. ์ปค๋ฐ์ด ์ด๋ฃจ์ด์ง๋ ๊ณผ์
working directory์์ ํ์ผ์ ์์ฑํ๊ฑฐ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฑ์ ์์ ์ ํ๋ค๊ฐ ์ปค๋ฐ์ ํ๊ณ ์ถ์ด์ก๋ค.
1. ์ง๊ธ ์ปค๋ฐ์ ๋จ๊ธฐ๊ณ ์ถ์ ๋ชจ๋ ํ์ผ๋ค์ staging area์ ์ฌ๋ฆฐ๋ค.
2. staging area์ ํ์ผ๋ค์ ์ฌ๋ฆฐ ์ํ์์ ์ปค๋ฐ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด
-> ํด๋น ์์ ์ staging area์ ์๋ ํ์ผ๋ค์ด ๊ทธ๋๋ก ํ๋์ ์ปค๋ฐ์ผ๋ก repository์ ์ ์ฅ๋๋ค.
์ด๋, staging area์ ์ฌ๋ ค๋ ํ์ผ๋ง ์ปค๋ฐ๋๊ธฐ ๋๋ฌธ์
์์ง ๋ฏธ์์ฑ/๋ถ์์ ํ์ฌ ์ปค๋ฐํ๊ธฐ ์ซ์ ํ์ผ๋ค์
git add๋ฅผ ํ์ง ์์ผ๋ฉด staging area์ ์ฌ๋ผ๊ฐ์ง ์์ ์ปค๋ฐ์ ๋ฐ์๋์ง ์์.
์ด๋ฐ ์์ผ๋ก ์ปค๋ฐ๋ค์ด ๋ ํฌ์งํ ๋ฆฌ์ ์์ฐจ์ ์ผ๋ก ์ ์ฅ๋๋ฉด์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ ์ ์๊ฒ ๋๋ ๊ฒ์.
1. Staging Area์ ํ์ผ ์ ๋ก๋ํ๊ธฐ
ํน์ ํ์ผ ์ ๋ก๋ ์ git add ํ์ผ๋ช
$ git add {ํ์ผ๋ช
}
์๋ก ์์ฑ๋์๊ฑฐ๋ ์กฐ๊ธ์ด๋ผ๋ ์์ ๋ ํ์ผ๊น์ง ๋ชจ๋ ์ ๋ก๋ ํ๊ณ ์ถ๋ค๋ฉด git add .
$ git add .
2. ์ปค๋ฐํ๊ธฐ
-m ์ต์ ์ ํตํด ์ปค๋ฐ ์ ๋ฉ์์ง๋ฅผ ํจ๊ป ๋จ๊ธธ ์ ์์
$ git commit -m "{์ปค๋ฐ ๋ฉ์ธ์ง}"
์ปค๋ฐ ๊ธฐ๋ก ํ์ธ
์ง๊ธ๊น์ง ์ ๋ ฅํ๋ ์ปค๋ฐ ๊ธฐ๋ก์ ์๊ฐ ์์๋๋ก ๋ชจ๋ ํ์ธํ ์ ์์
๊ธฐ๋ก์ฐฝ ๋ฐ์ผ๋ก ๋๊ฐ๊ณ ์ถ๋ค๋ฉด quit์ ์ฝ์์ธ q ์ ๋ ฅ
$ git log
๋ ์ปค๋ฐ ๋น๊ตํ๊ธฐ
git log๋ฅผ ํตํด ์ปค๋ฐ ์์ด๋๋ฅผ ํ์ธํ๊ณ , ๋น๊ตํ ์ปค๋ฐ ์์ด๋์ ์ 4์๋ฆฌ๋ฅผ ๊ธฐ์ตํ๋ค๊ฐ ์ฌ์ฉํ๋ฉด ๋จ
$ git diff {์ปค๋ฐ ์์ด๋} {์ปค๋ฐ ์์ด๋}