๐ .git ํด๋์๋ ๋ฌด์์ด ์๋์?
์ค๋๋ ๋๋ถ๋ถ์ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ git ์ ๋นผ๋์ ์ ์๋ ํ์ ๊ด๋ฆฌ ๋๊ตฌ๋ก ์๋ฆฌ์กํ ์์ต๋๋ค. ์ด๋ฌํ git ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง 'git init' ๋ช ๋ น์ด๋ก ์์ฑ๋๋ '.git' ํด๋ ํ์์ ๋ฐ์ดํฐ ๋ณํ๋ฅผ ์์ธํ ๋ถ์ํ์ฌ ์ค๋ช ํ ๊ธ์ด ์์ด ๊ณต์ ๋๋ฆฝ๋๋ค. ๊ธ์์ ์ฃผ์ํ๊ฒ ์ธ๊ธ๋ '.git' ํด๋ ํ์์ ์๋ ๋ฐ์ดํฐ์ ์ญํ ์ ์ ๋ฆฌํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๐ config ํ์ฌ ์ ์ฅ์์ ๋ํ git ์ค์ ์ ์ ๋ฆฌํ ํ ์คํธ ํ์ผ์ ๋๋ค. ์์ฑ์, ํ์ผ ๋ชจ๋ ๋ฑ๊ณผ ๊ฐ์ ์ ์ฅ์์ ๋ํ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ์ค์ ์ด ์์ฑ๋์ด ์์ต๋๋ค. ๐ HEAD ์ ์ฅ์์ ํ์ฌ ํค๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํ์ผ์ ๋๋ค. base branch ์ค์ ์ ์ด๋ป๊ฒ ํ๋๋์ ๋ฐ๋ผ ์ฒ์ ์์ฑ๋๋ HEAD ํ์ผ์ refs/heads/master ๋๋ refs/heads/main ๋๋ ๊ธฐํ ์ค์ ํ ๊ฒ์ผ๋ก ๋ํ๋ฉ๋๋ค. ํ์ฌ ์ ์ฅ์๊ฐ ๋ฐ๋ผ๋ณด๊ณ ์๋ ํค๋๊ฐ ๋ฌด์์ธ์ง๋ฅผ ์ ์ ์๋๋ก .git/refs/heads ํด๋์ ๊ฒฝ๋ก๋ฅผ ์ ์ฅํฉ๋๋ค. ๐ hooks git ๋์ ์ ํ์ ์คํํ ์ ์๋ ๋ชจ๋ ์คํฌ๋ฆฝํธ๋ฅผ ๊ด๋ฆฌํ๋ ๋๋ ํ ๋ฆฌ ์ ๋๋ค. ๐ objects git object, ์ฆ ์ ์ฅ์์ ํ์ผ๊ณผ ์ปค๋ฐ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋๋ ํ ๋ฆฌ ์ ๋๋ค. ๐ refs HEAD ํ์ผ์์๋ ์ ์ ์ธ๊ธ๋์์ง๋ง, ๋ธ๋์น(.git/refs/heads)์ ํ๊ทธ(.git/refs/tags)๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ ๋๋ ํฌ์ธํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋๋ ํ ๋ฆฌ ์ ๋๋ค. ๊ณต์ ๋๋ฆฐ ์๋ฌธ์ git command ์ ๋ฐ๋ผ .git ๋๋ ํ ๋ฆฌ์ ๋ณํ๋ฅผ ์์ธํ ์ค๋ช ํ๊ณ ์์ผ๋ ๊ด์ฌ์์ผ์ ๋ถ๋ค๊ป์๋ ํ๋ฒ ์ฝ์ด๋ณด์๋ฉด ์ข๊ฒ ์ต๋๋ค. ๐ ์๋ฌธ https://blog.meain.io/2023/what-is-in-dot-git/ ๐ ํจ๊ป ๋ณด๋ฉด ์ข์ ๊ธ * ๐บ ๋งํ๋ก ๋ณด๋ GIT ํ์ ์ด์ผ๊ธฐ: https://careerly.co.kr/comments/68908?utm_campaign=self-share * git hooks ๋์๋ฐฉ์: https://blog.meain.io/2019/making-sure-you-wont-commit-conflict-markers/