[GitLab] GitLab์ ๋ฐฑ์ ํ์ผ ์ ๋ก๋ ๋ฐ ์ถฉ๋ ํด๊ฒฐ
gitlab ์๋ฒ์ ๋น ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ , ๋ฐฑ์ ํ์ผ์ ์ ๋ก๋ํ๊ธฐ๊น์ง์ ๊ณผ์ ์ ๊ธฐ๋กํ๋ค.
1. ํ๋ก์ ํธ ์ด๊ธฐํ ๋ฐ ์๊ฒฉ ์ ์ฅ์ ์ถ๊ฐ
GUI์์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋ค, ์
๋ก๋ํ ํ์ผ๋ค์ด ์๋ local ํด๋๋ฅผ ์ด์ด์ค๋ค.
git init์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์ด๊ธฐํํ ๋ค, git remote ๋ช
๋ น์ด๋ฅผ ํตํด GitLab ์๋ฒ์ ์ฐ๊ฒฐํด์ผ ํ๋ค.
cd example/gitlab
git init
git remote add origin http://[gitlab์๋ฒ]:[port๋ฒํธ]/project.git
80๋ฒ ํฌํธ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์๊ด์์ง๋ง, ๋ด๊ฐ ์ฌ์ฉํ๋ gitlab ce ์๋ฒ๋ ๋ค๋ฅธ ํฌํธ๋ฒํธ๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด์ url์ ํฌํธ ๋ฒํธ๋ฅผ ๋ถ์ฌ์ค์ผ ํ๋ค.
๐ error: remote origin already exists.
๋ง์ฝ ํ์ผ์ด ๊ผฌ์ด๊ณ ์ฌ๋ฌ ๋ฒ ์๋ํ์ ๊ฒฝ์ฐ git remote add origin ๋ช ๋ น์ด๋ฅผ ์คํํ์ ๋, ์ด๋ฏธ origin์ด ์กด์ฌํ๋ค๋ ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ํ๋ ์๋ ์๋ค. ์ด ๋๋ ๊ธฐ์กด์ remote ์ ๋ณด๋ฅผ ์ญ์ ํ๊ณ ๋ค์ add ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ๋ฉด ๋๋ค.
git remote remove origin
git remote add origin http://[gitlab์๋ฒ]:[port๋ฒํธ]/project.git
git remote -v
์ถ๋ ฅ๊ฐ์ด ์ด๋ ๊ฒ ๋์ค๋ฉด ๋จ!
2. config ๊ฐ ๋ณ๊ฒฝ
์๋ ๋ด ๋ก์ปฌ Git ์ค์ ์ด ๊ฐ์ธ ๊นํ๋ธ ๊ณ์ ์ผ๋ก ๋์ด์๊ธฐ ๋๋ฌธ์ gitlab ce ์๋ฒ์ ๋ฑ๋ก๋์ด์๋ ๊ณ์ ์ผ๋ก config ์ ๋ณด๋ฅผ ๋ฐ๊ฟ์ค์ผ ํ๋ค.
git config --local user.name "์์ด๋"
git config --local user.email "์ด๋ฉ์ผ์ ๋ณด"
์ด๋ ๊ฒ ์ ๋ ฅํด์ฃผ๋ฉด ์ฌ๋ฆฌ๋ ค๋ ๋ก์ปฌ ํด๋์ ํํด์ config ์ ๋ณด๊ฐ ๋ณ๊ฒฝ๋๋ค.
3. ์๊ฒฉ ์ ์ฅ์ pull๋ฐ๊ธฐ
git pull origin main
ํน์ ๋ชจ๋ฅผ ์ถฉ๋์ ๋ฐฉ์งํ๊ธฐ ์ํด ํด๋น ๋ช ๋ น์ด๋ฅผ ํตํด ์๊ฒฉ ์ ์ฅ์(GitLab)์ ๋ด์ญ์ ๋จผ์ pullํ๋ค.
4. commit & push
์ด ์ดํ์ ์งํ ๊ณผ์ ์ ๊นํ๋ธ commit & push ๊ณผ์ ๊ณผ ๋์ผํ๋ค.
๐ GitLab: You are not allowed to push code to protected branches on this project.
์ฝ๋๋ฅผ ํธ์ํ๋ ค๊ณ push ๋ช ๋ น์ด๋ฅผ ์คํํ์ ๋ ํด๋น ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ํ๋ฌ๋ค. ์ด ๋ฉ์์ง๋ main ๋ธ๋์น๊ฐ ๋ณดํธ๋ ๋ธ๋์น๋ก ์ค์ ๋์ด ์์ด์ push ๊ถํ์ด ์๋ค๋ ๋ป์ด๋ค.
- ์๋ก์ด ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ํธ์ํ ๋ค, ๋ฉ์ธ ๋ธ๋์น์ PR์ ๋ ๋ ค merge ํ๊ธฐ
- ์ฌ์ฉ์ ๊ถํ Administrator๋ก ๋ณ๊ฒฝํ๊ธฐ
๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์๊ณ ๋๋ developer๋ก ์ค์ ๋์ด ์๋ ์ฌ์ฉ์ ๊ถํ์ administrator๋ก ๋ณ๊ฒฝํด์คฌ๋ค.
๐ git ์๋ธ๋ชจ๋ ๋ฌธ์
push๋ฅผ ํ๊ณ ๋ณด๋ ํ๋ก์ ํธ๊ฐ ํด๋ฆญ์ด ๋์ง ์์๋ค. ๋ด๊ฐ pushํ ansible ํด๋๊ฐ ์๋ธ๋ชจ๋๋ก ์ฒ๋ฆฌ๋์ด ์๊ณ , ์๋ธ๋ชจ๋์ ์์ ์ ์ฅ์์์ ๋ณ๋๋ก ๊ด๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ํ์ ํ์ผ๋ค์ด ์๋์ผ๋ก ํฌํจ๋์ง ์์์ ๋ฐ์ํ๋ ์ค๋ฅ์๋ค.
์ฒ์์๋ Ex/ansible ๊ฒฝ๋ก์ ํ์ผ์ ansible ํด๋์ ์ ๋ก๋ํ๋ ค๊ณ ์ค์ ํ์๊ณ , ์ดํ์๋ Ex ํด๋๋ก ์ ๋ก๋ ๊ฒฝ๋ก๋ฅผ ๋ณ๊ฒฝํ๋ค. ์ด๋ก ์ธํด Ex ํด๋์ ansible ํด๋ ๊ฐ๊ฐ์ .git ํด๋๊ฐ ์กด์ฌํ๊ฒ ๋์๊ณ , ์ด๋ก ์ธํด ์ถฉ๋ ๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
๋ฐ๋ผ์ ์๋์ ๋ช ๋ น์ด๋ฅผ ํตํด ansible ํด๋ ๋ด์ .git ํด๋๋ฅผ ์ญ์ ํด์คฌ๊ณ ์ค์ ์บ์๋ฅผ ์ง์์คฌ๋ค.
rm -rf ansible/.git
git rm --cached ansible
๊ทธ ๊ฒฐ๊ณผ ๋ฌด์ฌํ ์ ๋ก๋ํ ์ ์์๋ค.