๐ก Unreal Engine๊ณผ Git, Github๋ฅผ ์ฐ๋ํด์ ํํ๋ก์ ํธ๋ฅผ ์งํํ์
์ด๋ฒ์ ์๋ก์ด ํ์๋ค๊ณผ ๋ฑ์๋ผ์ดํฌ ์ฅ๋ฅด๋ก ๋ชจ์์ ๋ง๋๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ฒ ๋์์ต๋๋ค.
๊ทธ๋์ ํ์๋ค๊ณผ์ ํ์ ์ ์ํด Unreal Engine์ Git๊ณผ Github๋ฅผ ์ฐ๋ํด์ ์์ ํ ์ ์๋ ํ๊ฒฝ์ ๊ตฌ์ถํ๊ณ ์ ํฉ๋๋ค.
์๋์ ์์์ ์ฐธ๊ณ ํ์์ต๋๋ค.
๋ํ .gitignore ๋ถ๋ถ์ ๊ผญ ํ์คํ ์ฝ์ด ์ฃผ์ธ์!!
๊ณผ๊ธ ์์๊ฐ ๋ฐ์ํ๊ฑฐ๋ Github ์ฌ์ฉ์ ์ ํ์ด ์๊ธธ ์๋ ์์ต๋๋ค.
์ฐ์ Git์ ์ค์นํด์ผ ํฉ๋๋ค.
Git ์ค์น ๋งํฌ
์ ๋งํฌ๋ก ์ด๋ํ์ฌ Git์ ์ค์นํด์ฃผ์ธ์.
์๋์ ๋ค์ด๋ก๋๋ฅผ ํด๋ฆญํ์๊ณ ,
๊ฐ Pc์ ๋ฒ์ ์ ๋ง๊ฒ ์ค์นํด์ฃผ์ธ์.
์ ๋ Windows11 64bit๋ผ์ ์๋์ ๋ฒ์ ์ ์ค์นํ์ต๋๋ค.
์ค์น ํ ์ฌ๋ฌ ์ค์ ์ฐฝ์ด ๋จ๋๋ฐ ๋ชจ๋ Next๋ก ๋์ด๊ฐ์ ํ ์ค์น ์๋ฃํด์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ Window๊ฒ์์์ Git bash๋ฅผ ๊ฒ์ํด์ ์ค์น ํ์ธํด์ฃผ์ธ์
๊ทธ๋ฆฌ๊ณ Git bash๋ฅผ ์ผ์ฃผ์๊ณ , "git lfs install" ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๊ณ ๊บผ์ฃผ์ธ์.
์๋์ ๋งํฌ๋ก ์ด๋ํ์ ์ Github Desktop ์ดํ๋ฆฌ์ผ์ด์ ์ ์ค์นํด์ฃผ์ธ์.
Github Desktop ์ดํ๋ฆฌ์ผ์ด์ ์ค์น
์ค์นํ์๋ฉด ์๋ ์ฐฝ์ด ๋จ๋๋ฐ
๋ณธ์ธ Github ๊ณ์ ์ผ๋ก ์ฐ๋ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
์ธ๋ฆฌ์ผ ์๋ํฐ๋ฅผ ์ผ์ฃผ์ธ์.
Edit - Plugins์ ๋ค์ด ๊ฐ์๊ณ
Git์ ์ค์นํด์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ Restart๊ฐ ๋จ์๋ฉด ์ฌ์์ ํด์ฃผ์ธ์.
ํ๋ก์ ํธ๋ฅผ Git๊ณผ Github๋ฅผ ์ฐ๋ํ๋ ๊ณผ์ ์
๋๋ค.
Git ๊ด๋ฆฌ์ ์ญํ ์ ๋งก์ผ์ ๋ถ๋ง ํ์๋ฉด ๋ฉ๋๋ค.
ํ์์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ์ค ๋ถ๋ค์ ์๋์ ํ๋ก์ ํธ ํ ๋ฉค๋ฒ ์ ๊ทผ ๋ฐฉ๋ฒ๋ถ๋ถ๋ถํฐ ํ์ธํด์ฃผ์ธ์.
์๋ํฐ ์ฐ์ธก ํ๋จ์ Git ๋ฒํผ์ด ์์ต๋๋ค.
๋๋ฅด์๋ฉด ์๋ ์ฌ์ง์ฒ๋ผ ๋ํ๋๋๋ฐ Connect to Revision Control...์ ๋๋ฌ์ฃผ์ธ์.
์๋์ ๊ฐ์ ์ฐฝ์ด ๋ํ๋ฉ๋๋ค.
Provider๋ฅผ Git์ผ๋ก ๋ณ๊ฒฝํด์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ ํ๋จ์ [Add a .gitattributes file to enable Git LFS]๋ฅผ ์ฒดํฌํด์ฃผ์ธ์.
Accept Settingsํด์ฃผ์ธ์.
์ ๋ ์ด๋ฏธ ์ฐ๋๋ ํ๋ก์ ํธ๊ฐ ์์ด์ ์ฐฝ ๋ชจ์์ด ์กฐ๊ธ ๋ค๋ฅผ ์ ์์ต๋๋ค.
๋ฐ์คํฌํ ์ดํ๋ฆฌ์ผ์ด์ ์์ Add exisiting repository๋ฅผ ๋๋ฌ์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ํ ๋ณธ์ธ์ ์ธ๋ฆฌ์ผ ํ๋ก์ ํธ๊ฐ ์๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ์์ ์ค์ ํด์ค๋๋ค.
์ ๋ OMRP๋ผ๋ ํ๋ก์ ํธ๋ก ์งํํ๊ฒ ์ต๋๋ค.
ํ๋ก์ ํธ ๋ด๋ถ๊น์ง ๊ฒฝ๋ก๊ฐ ๋ค์ด๊ฐ์ผ ํฉ๋๋ค!
๊ทธ๋ผ ์ค์ ํ๊ณ Add Repository๋ฅผ ํด์ฃผ์๋ฉด ์๋์ ์ฐฝ์ด ๋น๋๋ค.
๋นจ๊ฐ ๋ฐ์ค ์์ ์ฌ๋ฌ๋ถ์ด ์ค์ ํ์ ํ๋ก์ ํธ์ ๊ฒฝ๋ก๊ฐ ๋น๋๋ค.
ํ์ธํด์ฃผ์๊ณ ์งํํ๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์ Git Bash๋ฅผ ์ด์ด์ ์๋์ ๋ช ๋ น์ด๋ค์ ๋ชจ๋ ์ ๋ ฅํด์ฃผ์ธ์.
ํ๋ก์ ํธ ๊ฒฝ๋ก๋ ํ์ผ ํ์๊ธฐ์์ ๊ฒฝ๋ก ์ด๋ํ์๊ณ ๋ณต์ฌํด์ ๋ฃ์ด ์ฃผ์๋ฉด ๋ฉ๋๋ค.
๋ค์ Unreal ์๋ํฐ๋ก ์ด๋ํ์๊ณ Submit Content ๋๋ฌ์ฃผ์ธ์.
์๋ ์ฐฝ์ด ๋จ๋ฉด Description ์์ฑํด์ฃผ์๊ณ , Submit ํด์ฃผ์ธ์.
๋ง์ฝ ์ ๊ณผ์ ์ค ์ค๋ฅ๊ฐ ๋๋ค๋ฉด ์ธ๋ฆฌ์ผ ์๋ํฐ์ Git์ ๋ชจ๋ ์ข
๋ฃํด์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ ์์
๊ด๋ฆฌ์๋ฅผ ์ผ์ git for windows๊ฐ ๋จ์ ์๋์ง ํ์ธํ๊ณ ์๋ค๋ฉด ๋ชจ๋ ์ข
๋ฃํด์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ก์ ํธ ํ์ผ๋ก ์ด๋ํ์
์ .git ํด๋๋ก ์ด๋ํฉ๋๋ค.
.git์ด ์๋ค๋ฉด ์จ๊ธด ํญ๋ชฉ ํ์ํด์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ ์์ indexํ์ผ์ ์ญ์ ํด์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ ๋ค์ .exeํ์ผ๋ก ๋ฐ๋ก ์๋ํฐ๋ฅผ ์ผ์ Submit Content๋ก ์ด๋ํด์ ์งํํด์ฃผ์ธ์.
์ ๊ณผ์ ๋ค์ด ์๋ฃ ๋์๋ค๋ฉด ๋ฐ์คํฌํ ์ดํ๋ฆฌ์ผ์ด์
์ History์ ์ ์์ ์ผ๋ก ๋ค์ด๊ฐ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
โ์ฌ๊ธฐ ๋ด์ฉ์ ๋งค์ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๊ณผ๊ธ์ด ๋ฐ์ํ ์๋ ์์ต๋๋คโ
โ์ฌ๊ธฐ ๋ด์ฉ์ ๋งค์ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๊ณผ๊ธ์ด ๋ฐ์ํ ์๋ ์์ต๋๋คโ
์ธ๋ฆฌ์ผ ์์ง ๋ฟ๋ง์ด ์๋๋ผ ๋์ฉ๋ ํ์ผ์ Github์ ๋ฐ๋ก ์ฌ๋ฆด ์ ์์ต๋๋ค.
๊ทธ๋์ LFS๋ฅผ ์ฌ์ฉํด์ ๋ฐ๋ก ๊ด๋ฆฌ๋ฅผ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
ํ์ง๋ง Github๋ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์๋ Git LFS Data์ ์ฉ๋๊ณผ, ๋์ญํญ์ด 1GB๋ก ์ ํ๋์ด ์์ต๋๋ค.
์ ์ฒ๋ผ ๊ฒฐ์ ๋ฅผ ํ์ค๊ฒ ์๋๋ผ๋ฉด ๋ชจ๋ ํ์ผ์ ์
๋ก๋ํ๋ฉด ์๋๊ฒ ์ฃ ?
์ด์ ๋ํด์ "์ธ์ ์ธ๋ฆฌ์ผ ๊ต๊ณผ์"์ ์ ์์ด์ ์ด์ํธ ๊ฐ์ฌ๋๊ป ์๋ฌธ์ ๊ตฌํ์ต๋๋ค.
์ผ๋ฐ์ ์ธ ํํ๋ก์ ํธ๋ ๊ณผ๊ธ์ด ํ์ํ ์ ๋๋ก ์ฉ๋์ด ํฌ์ง ์๋ค.
๋ณดํต ์ด๋ฏธ์ง ํ์ผ์ ํ์ธํ์ง ์์ ์ฉ๋์ ๋ง์ด ์ก์ ๋จน๋๋ค.
๊ทธ๋์ 100MB๊ฐ ๋์ด๊ฐ๋ ์์ , ์ด๋ฏธ์ง๋ค์ ์๊ฒฉ ์ ์ฅ์์ ์ฌ๋ฆฌ์ง ์๊ณ ,
ํ์๋ค๊ณผ ํ์ํ์ฌ ๋ก์ปฌ ํ๊ฒฝ์์ ๋ฐ๋ก ์ถ๊ฐํ๋ ๋ฐฉ์์ผ๋ก ์งํํ๋ ๊ฒ์ด ์ข๋ค.
๊ทธ๋์ ์ง์ ํ์ผ๋ค์ ํ์ธํ์ฌ, 100MB๊ฐ ๋์ด๊ฐ๋ ํด๋๋ .gitignore์ ์ถ๊ฐํด์ฃผ์ธ์.
๋ํ, ์๋ ์ฌ์ง์ฒ๋ผ generate๋ฅผ ํตํด ์๋กญ๊ฒ ์์ฑ๋๋ ํด๋๋ ์ ์ธํด์ฃผ์ธ์.
์ฒ์๋ถํฐ ๋ชจ๋ ์
๋ก๋ํด์ ๊ฒฐ์ ๋ฅผ ํด์ผ ํ๋ค๊ฑฐ๋,
๊ฒฐ์ ๋ฅผ ์ํด์ ์ด์ฉ์ ํ์ด ๊ฑธ๋ฆฌ๋ ์ผ์ด ์๊ฒ ํฉ์๋ค.
Github ๋ฐํฌ์คํ ์ดํ๋ฆฌ์ผ์ด์
์๋จ์ Public repository๊ฐ ์์ต๋๋ค.
๋๋ฌ์ฃผ์ธ์.
๊ทธ๋ฌ๋ฉด ์๋์ ์ฐฝ์ด ๋น๋๋ค.
ํ๋ก์ ํธ๋ช
, Description ์์ฑํด์ฃผ์ธ์.
์๋ ์ฒดํฌ ์ต์
์ repository๋ฅผ public์ผ๋ก ํ ์ง private๋ก ํ ์ง์ ๋ํ ์ค์ ์
๋๋ค.
์ ๋ private๋ก ์งํํ๊ธฐ ์ํด ์ฒดํฌํ๊ฒ ์ต๋๋ค.
์ ์ ๊ธฐ๋ค๋ฆฌ์ ํ ์ ์์ ์ผ๋ก ๋์ํ๋ค๋ฉด ์์ publish repository๊ฐ fetch origin์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
์ด์ Github ํํ์ด์ง๋ก ์ด๋ํ๊ฒ ์ต๋๋ค.
์ฌ๋ฌ๋ถ์ Github์ ๋ค์ด๊ฐ์๋ฉด ์ธ๋ฆฌ์ผ ํ๋ก์ ํธ๊ฐ Repository์ ์ฐ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
Settings - Collaborators - Add people์ ๋๋ฌ ํ์์ ๊ฒ์ํด์ ์ด๋ํ์๋ฉด ๋ฉ๋๋ค.
์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์์ง๋ง ์ฐ๋ฆฌ๋ Github ๋ฐ์คํฌํ ์ดํ๋ฆฌ์ผ์ด์ ์์ Cloneํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์งํํ๊ฒ ์ต๋๋ค.
Github ๋ฐ์คํฌํ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ผ์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ Add๋ฅผ ๋๋ฌ Clone Repository๋ฅผ ์ ํํฉ๋๋ค.
ํด๋ก ํ ํ๋ก์ ํธ๋ฅผ ์ ํํ ํ, ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ Clone์ ๋๋ฅด๊ณ ๊ธฐ๋ค๋ ค ์ฃผ์ธ์.
์์
์ด ์๋ฃ๋๋ฉด ํ๋ก์ ํธ ํด๋๋ก ์ด๋ํด ํ๋ก์ ํธ.exe๋ฅผ ์ฐํด๋ฆญํ๊ณ Generate Visual Studio project files๋ฅผ ๋๋ฌ์ ์์
์ ์งํํด ์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉด, ํ๋ก์ ํธ๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ ์ฑ๊ณตํฉ๋๋ค.
Git์์ Check Out์ด๋ผ๋ ํ์๋ ์ผ๋ฐ์ ์ผ๋ก ์ฝ๋ ์ ์ฅ์(repository)์์ ํน์ ๋ธ๋์น(branch)๋ก ์ ํํ๋ ์์
์
๋๋ค.
์ด ์์
์ ์ํด ์๊ฒฉ ์ ์ฅ์์ ์ฌ๋ ค๋ ์ฝ๋๋ฅผ ๋ก์ปฌ ์ปดํจํฐ๋ก ๋ด๋ ค๋ฐ๋ ์์
์ด ๋ฐ๋์ ์ ํ์ด ๋์ด์ผ ํฉ๋๋ค.
์ ๋ ํ๋ก์ ํธ์ ์ด๋ฏธ์ง๋ฅผ ํ๋ ๋ฃ๊ฒ ์ต๋๋ค.
์ด๋ฏธ์ง ์ถ๊ฐ๋ผ๋ ์์ ์ฌํญ์ด ์๊ธด๊ฒ๋๋ค.
์ด๋ฏธ์ง๋ฅผ ๋ฃ์ผ๋ฉด "?"๋ก ํ์๊ฐ ๋ฉ๋๋ค.
์ฌ๊ธฐ์ ์ฐ์ธกํ๋จ Git์์ Check Out Modified Files๋ฅผ ๋๋ฆ
๋๋ค.
๊ทธ๋ฌ๋ฉด ์ด๋ฏธ์ง์ "?"๊ฐ "+"๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฒ์ Git์์ Submit Content๋ฅผ ๋๋ฌ ์ฃผ์ธ์.
Submit์ด ์๋ฃ๋๋ฉด ์ด๋ฏธ์ง ํ์ผ์ ๋งํฌ์์ด ๋จ๊ฒ ๋ฉ๋๋ค.
Push๋ ์์ ํ Local์ ์์ ๋ด์ฉ์ ์ฐ๋ฆฌ์ ์๊ฒฉ ์ ์ฅ์๋ก ๋ณด๋ด๊ธฐ ์ํ ์์ ์ ๋๋ค.
Submit์ ๋๋์ผ๋ Github ๋ฐ์คํฌํ ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ด๋ํฉ๋๋ค.
๊ทธ๋ผ History์ ์ฐ๋ฆฌ๊ฐ Submitํ ๋ด์ฉ์ ๋ํ Description๊ณผ ํจ๊ป Commit๋์ด ์์ต๋๋ค.
Commit์ ์์ ์ฌํญ๋ค์ ์ถ์ถํด์ ์ ์ฅ์์ ๊ธฐ๋กํฉ๋๋ค.
์์ ๋ ๋ด์ฉ๋ง ๊ด๋ฆฌํ๊ณ ์ฝ๋๊ฐ ๋ณํ๋ ์๊ฐ ์์์ ๋ฐ๋ผ์ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋จ์ Push origin์ ๋๋ฌ๋ณด๊ฒ ์ต๋๋ค.
์ ์ ๋ก๋ฉ ๋ค์ Fetch๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
Github๋ก ๊ฐ์ ํ์ธํด๋ณด๋ฉด IU_Test_Image๊ฐ ๋ค์ด๊ฐ ์๋๊ฑธ ํ์ธํ ์ ์์ต๋๋ค.
Fetch์ Pull์ ์๊ฒฉ ์ ์ฅ์์ ์์ ์ฌํญ์ด ์์ ๋, ๋ด Local์ ๋ด์ฉ์ผ๋ก ์์ ์ฌํญ์ ์ ์ฉํ๋ ์์ ์ ๋๋ค.
๋ค๋ง ๋งค์ฐ ํฐ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
Fetch๋ ์๊ฒฉ ์ ์ฅ์์ ์ปค๋ฐ๋ค์ ๋ก์ปฌ ์ ์ฅ์๋ก ๊ฐ์ ธ์ค๋, ์๋์ผ๋ก ๋ณํฉ(Merge)๋ฅผ ํด์ฃผ์ง ์์ต๋๋ค.
Pull์ด๋ ์๊ฒฉ ์ ์ฅ์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ฉด์ ์๋์ผ๋ก ๋ก์ปฌ ๋ธ๋์น์ ๋ณํฉ(Merge)๊น์ง ํด์ค๋๋ค.
์์์ IU_Test_Image๋ผ๋ ํ์ผ์ด ์ถ๊ฐ๋ก ์๊ฒผ์ ๋ ๋ก์ปฌ์์ ์์
ํ๊ณ ์๋ ํ์๋ค์ IU_Test_Image๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค.
์ด๋, Fetch์ Pull์ ํตํด์ ์์ ์ฌํญ์ ์ ์ฉํ ์ ์๋ ๊ฒ์ด์ฃ .
์๋จ ํด๋ฐ์์ Repositry๋ฅผ ์ ํํด์ Fetch์ Pull๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
C++ ํ๋ก์ ํธ ์ฌ์ฉ ์ Pull์ ํ๊ณ ์ธ๋ฆฌ์ผ ์๋ํฐ๋ฅผ ๋ฐ๋ก ์ผ๋ ์ ์ฉ์ด ๋์ง ์์ ๋๊ฐ ์์ต๋๋ค.
๊ทธ๋ด๋ ํ๋ก์ ํธ์ Visual Stdudio Project files๋ฅผ Regenerateํด์ฃผ์๊ณ ,
์ธ๋ฆฌ์ผ ์๋ํฐ๋ฅผ ์คํํ์๋๊ฒ ์๋ Visual Studio๋ฅผ ์คํํด์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ VS์์์ ์คํ์ ๋๋ฌ ์ฃผ์ธ์.
์ธ๋ฆฌ์ผ๊ณผ ์ฐ๋์ด ์ ์์ ์ผ๋ก ๋์ด ์๋ค๋ฉด ์ธ๋ฆฌ์ผ ์๋ํฐ๊ฐ ์คํ๋๊ณ C++ Class๊ฐ ๋ฐ์๋์ด ์์ ๊ฒ๋๋ค.
์ด๊ฒ์ผ๋ก ํํ๋ก์ ํธ๋ฅผ ์ํ ์ฐ๋์ด ์๋ฃ๋์์ต๋๋ค.
Git์ ์ฌ์ฉํด๋ณด์์ง ์์๋ค๋ฉด ์์ ๋ด์ฉ๋ค์ด ์์ง ์ด๋ ค์ฐ์ค ๊ฒ๋๋ค.
ํ์ ์ ์ํ Branch๋ฅผ ๋ฐ๋ก ์์ฑํด์ ์์ ํ๋ฉด ๋๊ฒ ์ฃ ?
์ด์ ๋๋ถ์ด Check In, Check Out, Submit, Commit, Push, Pull, Fetch, Brach, Merge๋ฑ์ ์ฉ์ด๋ค์ ๋ค์์ ๋ฐ๋ก ํฌ์คํ ํ๋๋ก ํ๊ฒ ์ต๋๋ค.