git์ ์ด์ฉํ๊ธฐ ์ํด git init
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค. ์ด ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋น ํ์ผ์ git์ด ๊ด๋ฆฌํ๋ ํ์ผ์ด ๋๋ค. ์ฆ, .git ํ์ผ์ด ์์ฑ๋๋ค.
git์์ ๊ฐ ํ์ผ์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ ๋ ์ค๋ ์์ ์ฐ์ด ํ๋์ ์ค๋ธ์ ํธ ํ์ผ๋ก ๊ด๋ฆฌํ๋ค.
์ฐธ๊ณ ๋ก ๋์ด์ git์ผ๋ก ํ์ผ์ ๊ด๋ฆฌํ๊ณ ์ถ์ง ์์ผ๋ฉด
rm -r .git
๋ช ๋ น์ด๋ฅผ ํตํด .git ๋๋ ํ ๋ฆฌ๋ฅผ ์ญ์ ํ๋ฉด ๋๋ค.
์์ ๊ณต๊ฐ ๋ฐ Git ๊ณต๊ฐ
๊ณต๊ฐ | ์์น | ์ค๋ช |
---|---|---|
working Directory | ๋ด๊ฐ ์์ ํ๋ ๊ณต๊ฐ | ์ค์ ์์ ์ ํ๋ ๊ณต๊ฐ |
Stating Area (=Index) | .git/index | ์ปค๋ฐํ ํ์ผ ๋ชจ์๋ (=addํ ํ์ผ) |
(Local) Repository | .git/objects | git์ด ๋ฒ์ ๊ด๋ฆฌํ๋ฉด์ ๋ชจ์๋ ํ์ผ |
์ฌ๊ธฐ์ Repository์ ๋ณด๊ด๋ ํ์ผ์ด ๋ชจ๋ ์ค๋ธ์ ํธ ํ์ผ์ด๋ค. ์ค๋ธ์ ํธ ํ์ผ์ ๋ค์๊ณผ ๊ฐ๋ค.
ํ์ผ | ์ค๋ช |
---|---|
Blob ํ์ผ | Binary large Object, ํ์ผ์ ์ค๋ ์ท |
commit ํ์ผ | ํ๋์ ๋ฒ์ ์์ฑ |
tree ํ์ผ | ํ์ผ ๋ช ๊ณผ ํ์ผ์ blob ํ์ผ์ ์ฃผ์ ๋ชฉ๋ก |
tag ํ์ผ | ํน์ ์ปค๋ฐ ํ๊ทธ |
1. ํ์ผ ์ ์ฅ - blob ํ์ผ
ํ์ผ์ ์ ์ฅํ๊ณ git์ ํตํด add ํ๋ฉด ํ์ผ์ ๋ํ blob ํ์ผ์ ์์ฑํ๋ค. blob ํ์ผ์ ์ด๋ฆ์ ํ์ผ์ ๋ด์ฉ๋ง๋ค ๋ค๋ฅด๋ค. git์์ ํด์ฑ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ํ์ผ๋ช
์ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋ด์ฉ์ ํ์ผ์ด๋ฉด ํ์ผ๋ช
๋ ๋์ผํ๋ค. ์ด๋ฐ blob ํ์ผ์ object์ ์กด์ฌํ๋ค.
2. addํ ํ์ผ ๋ชจ์
addํ blobํ์ผ์ ๋ชจ๋ index์ ๋ณด๊ด๋๋ค. ๋์ค์ commitํ ๋ index์ ์๋ ํ์ผ์ ๊ฐ์ง๊ณ ์งํํ๋ค.
commit
git commit์ ํตํด ํ๋์ ๋ฒ์ ์ ๋ง๋ ๋ค. ์ด ๋ commit ํ์ผ์ด ์์ฑ๋๋ค. commit ํ์ผ์๋ ์ฌ๋ฌ ๋ด์ฉ์ ๋ด๊ณ ์๋ค.
commit ํ์ผ
์์ ์ด ๋ ํ์ผ์ add๋ฅผ ํตํด index์ ๋ชจ๋ ๋ชจ์๋ค. ์ด index์ ๋ชจ์ธ ํ์ผ์ ํ๋์ treeํ์ผ๋ก ๋ง๋ ๋ค.(์๋ ๊ทธ๋ฆผ์ ๋นจ๊ฐ์) ์ด tree ํ์ผ๊ณผ ์์ ์ด ๋์ง ์์ ํ์ผ(=blob ํ์ผ)์ ํ๋๋ก ๋ฌถ์ด ๋ค์ treeํ์ผ๋ก ๋ง๋ ๋ค.
์๋ ๊ทธ๋ฆผ์ ์์์ด๋ค.
HEAD ์์๋ณด๊ธฐ
log๋ฅผ ๋ณด๋ฉด HEAD๊ฐ ์ด๋ค ๋ธ๋์น๋ฅผ ๊ฐ๋ฅดํค๋์ง ๋์์๋ค. ์ด HEAD๋ฅผ ์์๋ณด์.
.git
ํ์ผ์ ๋ค์ด๊ฐ๋ณด์.
cd .git/refs/heads/
์ ๋ค์ด๊ฐ๋ณด์. ์๋ ์ฌ์ง์ฒ๋ผ main์ด ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ด main์ ๊ฐ์ ์ต์ ์ปค๋ฐ ์ค๋ธ์ ํธ ID๊ฐ์ ๊ฐ๋ฅดํจ๋ค.
.git/refs/heads
๋ค์ด๊ฐ๊ธฐgit log
์์ HEAD๋ refs/heads/main
ํ์ผ์ด ๊ฐ๋ฅดํจ ์ต์ ์ปค๋ฐ ๊ฐ์ด๋ค. ์ด ์ปค๋ฐ ํ์ผ ์์ parent๋ฅผ ํตํด ์ด์ ์ปค๋ฐ ๋ชฉ๋ก์ ๋ฟ๋ฆฌ๋ฉด์ ์ฐ๋ฆฌ๊ฐ ์๋ ๋ก๊ทธ ๋ชจ์ต์ด ๋์ค๋ ๊ฒ์ด๋ค.
branch ์์ฑํ๊ณ ์ฌ์ฉํ๊ธฐ
branch๋ refs/heads ๋๋ ํ ๋ฆฌ ์์ ์๋ ํ์ผ์ ์๋ฏธํ๋ค. branch๋ฅผ ์์ฑํ๋ฉด refs ๋๋ ํ ๋ฆฌ์ ํ์ผ์ด ์ถ๊ฐ๋๋ค.
์์๋ก branch1์ด๋ผ๋ ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ๋ณด์๋ค.
๊ทธ๋ ๋ค๋ฉด refs ๋๋ ํ ๋ฆฌ ์์๋ ๋ ๊ฐ์ง ํ์ผ์ด ์๊ธด๋ค.
.git/refs/heads
์ ํ์ผ์ด ๋์ด๋ ๋ชจ์ตbranch1๋ก ๋ธ๋์น๋ฅผ ๋ฐ๊พธ๊ณ ์์
์ ์งํํ๋ค. ์ด๋ HEAD๊ฐ ๊ฐ๋ฅดํค๋ ํ์ผ์ .git/refs/heads/branch1
์ด๋ค.
refs/heads/branch
์ ํ์ผ ๋ด์ฉ๊ณผ log
์ HEAD์ถ์ฒ
์ด๋ฏธ์ง
http://osteele.com
์ฐธ๊ณ ๋ธ๋ก๊ทธ
https://koreapy.tistory.com/m/1402
https://it-eldorado.tistory.com/4
https://kotlinworld.com/301