ํ˜‘์—…

[GitLab] GitLab์— ๋ฐฑ์—… ํŒŒ์ผ ์—…๋กœ๋“œ ๋ฐ ์ถฉ๋Œ ํ•ด๊ฒฐ

hyeyeonismm 2024. 4. 30. 12:45
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

 

๊ทธ ๊ฒฐ๊ณผ ๋ฌด์‚ฌํžˆ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.