Programming/Git (3) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [Gitlab] ๊น ๋ฉ ๋ฏธ๋ฌ๋ง(gitlab mirroring, ๋ฐฑ์ ์ฒด๊ณ ๊ตฌ์ถ) โ ๋ฐฐ๊ฒฝํ์ฌ ํ์ฌ๋ ๊ฐ๋ฐ์๋ฒ๊ฐ 2์ค์ผ๋ก ๊ตฌ์ฑ๋์ด ์์์ต๋๋ค.ํํธ ๋ด์์ ๊ฐ๋ฐ ์์๋๋ ํ๊ฒฝ์ GitLab๊ณผ Jenkins๊ฐ ํธ์คํ ๋์ด ์๋ ์จํ๋ ๋ฏธ์ค ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ๋์ด ์๊ณ 1์ฐจ ์๋ฒ์์ 2์ฐจ ๊ฐ๋ฐ์๋ฒ๋ก ๋ฏธ๋ฌ๋ง ๋ฐ ๋ฐฐํฌ๊ฐ ์ด๋ค์ง๋๋ค. 2์ฐจ ๊ฐ๋ฐ์๋ฒ๋ ์ฌ๋ฌ ํ์์ ์ฐธ์กฐํ๊ณ ์๋๋ฐ ๊ฐํ์ ์ผ๋ก 1์ฐจ ๊ฐ๋ฐ์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ด๋ฌํ ์ฅ์ ๋ ๊ฐ๋ฐ, ํ ์คํธ, ์ดํ ์ผ์ ์ ์ฐจ์ง์ ์ด๋ํ์ฌ, ํ์ ์ ๋ฌด ํจ์จ์ฑ์ ์ ํดํ์ต๋๋ค.์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ์ ๋ ๋ฐฑ์ ์ฒด๊ณ๋ฅผ ๊ตฌ์ถํ๊ธฐ๋ก ๊ฒฐ์ฌํ์ต๋๋ค.๊ทธ ๊ณผ์ ์ gitLab ๋ฏธ๋ฌ๋ง ๋ฐฉ๋ฒ์ ๊ณต์ ํ๊ณ ์ ํฉ๋๋ค. โ GitLab ๋ฏธ๋ฌ๋ง 1. ๋ฐฑ์ gitlab์ ์์ค๋ฅผ ๋ฐ์ ํ๊ฒ ํ๋ก์ ํธ๋ฅผ ์์ฑ์๋ต... 2. ๋ฐฑ์ gitlab์ ์ธ์ฆ์ ์ํ access token์.. [Git Hook] pre commit ์ผ๋ก ์ฅ์ ์๋ฐฉํ๊ธฐ(ft. husky, osascript) d์ต์ ์ด์ ์ค์ธ ์ฑ์์ ํน์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค ์ฅ์ ๊ฐ ๋ฌ์๋ค. ์ผ๋ถ ์๋น์ค์์ ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ ๋ฉ์๋๊ฐ ์์๋๋ฐ, ํ๊ฒฝ์ด ๋ถ์ฐ๋๊ณ ๋ณต์กํ๋ค๋ณด๋ ๊ฐ๋ฐ์๊ฐ ํ ์คํธ๋ฅผ ๋์น ์ผ์ด์ค์์๋ค. ์ด ๋ถ๋ถ์ ๊ฐ์ ํ๊ณ ๋น์ทํ ์ฅ์ ๋ฅผ ์๋ฐฉํ๊ธฐ ์ํด์ pre commit rule์ ์ถ๊ฐํด์ ํน์ ํค์๋๊ฐ ์์ค์ ์ถ๊ฐ๋๋ฉด ์๋ด๋ฅผ ์ํ ํ์ ์ ๋์ฐ๊ฒ ํ๋ค. ๐ค ํ๊ฒฝ๊ฐ๋ฐํ์ ํ๊ฒฝ์ Mac์ ์ฌ์ฉํ๊ณ ์๊ณ Husky plugin์ด ์ค์น๋์ด ์์๋ค. git์ ๊ฐ๋ฐ์๊ฐ commit์ ์ํํ๋ฉด, commit ์ด ์ํ๋๊ธฐ ์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํ๋๊ฒ๋ํ๋ pre-commit ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.๋ฐฉ๋ฒ์ ํ๋ก์ ํธ์ .git/ ํ์์ "pre-commit"์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๋ฉด ๋๋ค.ํ์ง๋ง, git์์ ์ ๊ณตํ๋ pre-commit์ ๊ฒฝ์ฐ, ๊ฐ์ธ ๋ก์ปฌ.. ๊นํ ํน์ ๋ธ๋์น ํด๋ก ํ๊ธฐ / github branch clone ํ์ผ๋ก ์งํ๋์๋ ํ๋ก์ ํธ์์ ์์ ์ ๋ธ๋์น ๊ฐ์ ธ์ฌ ๋, ์ฌ์ฉํ๊ธฐ ์ข์ต๋๋ค. ๐ ํน์ branch cloneํ๊ธฐ git clone -b [๋ธ๋์น ์ด๋ฆ] --single-branch [๋ฆฌํฌ์งํ ๋ฆฌ ์ฃผ์] ๋ฆฌํฌ์งํ ๋ฆฌ ์ฃผ์๋ HTTPS, SSH ์ฃผ์ ๋ชจ๋ ๊ฐ๋ฅ ํฉ๋๋ค. ์์ git clone -b space_jin --single-branch https://github.com/space-team/toy-proj space-team ๊นํ์ toy-proj ๋ฆฌํฌ์งํ ๋ฆฌ์ space_jin ๋ธ๋์น๋ง ํด๋ก ํฉ๋๋ค. ์ด์ 1 ๋ค์