프로젝트를 개발하는데에 있어서 Git을 사용하면, 내가 과거에 했던 프로젝트로 되돌아갈수 있다는 장점이 있다. 또한, 추가적으로 Github을 사용하면 과거의 시점을 캡쳐에 클라우드에 올릴 수 있어서 다양한 사람들과의 협업&자신이 작업했던 로컬 환경에 변화가 생겼을때 유연하게 개발할 수 있다는 장점이 있다!
나름 고군분투하면서 어떤 방법으로 초기 Git을 설정하는 것이 효과적인지 테스트를 해보았다.
특히 강조하고 싶은 부분이 있는데, 언리얼로 게임 개발을 하는데에는 큰 용량을 가진 에셋들이 종종 사용된다. Github에 push할때 각 파일의 용량이 100MB이상이면 중간에 오류나 발생함으로 .gitignore
파일을 신경써서 작성해주는 것이 정말로 중요하다. (2번) 과정에서 Github Desktop으로 Unreal용 .gitignore
파일을 생성하고 (5번) 과정에서 자신이 나중에 추가한 에셋들의 파일 경로들만 잘 추가해준다면 큰 문제는 없을 것이다:)
바꾼 파일을 "git add"를 통해 임시 저장상태인 staging area로 보낼 수 있다.
staging area에 존재하고 있는 파일들을 최종 snapshot을 찍는 것이다. "git checkout"을 통해서 본격적으로 version control을 수행할 수 있는데, 여기서 "git commit"으로 생성된 snapshot들 중 하나를 골라서 되돌아갈 수 있다. "git commit -am"을 쓰면 add와 commit을 한꺼번에 할 수 있다.
이것은 github 원격저장소에 snapshot한 결과를 올리는 과정이다. origin에 원격 저장소의 url을 등록해 놓았다면 git push origin [branch 이름]으로 코드를 올릴 수 있다.
과거의 commit한 git 상태로 되돌아갈 수 있다.
git으로 원격저장소에 push를 하면 한 파일의 크기 제한이 100MB에 걸리게 된다. 이를 해결하는 방법으로는 git LFS(Large File Storage)를 사용할 수 있다. 하지만 유료이므로 상황에 맞게 사용하자.
git remote add origin : 처음으로 원격 저장소 주소 만들때
git remote set-url origin : 이미 원격저장소 주소 있지만 바꾸고 싶을때
git remote -v : 현재 등록되어 있는 원격 저장소 링크 확인
git rm -r --cached . : .gitignore를 수정하였는데 이를 확실하게 반영하고 싶을때는 기존의 캐시를 날려주고 git add .를 다시 실행
git ls-files : 현재 git이 tracking하고 있는 file들을 보여준다.
# Visual Studio 2015 user specific files
.vs/
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
*.ipa
# These project files can be generated by the engine
*.xcodeproj
*.xcworkspace
*.sln
*.suo
*.opensdf
*.sdf
*.VC.db
*.VC.opendb
# Precompiled Assets
SourceArt/**/*.png
SourceArt/**/*.tga
# Binary Files
Binaries/*
Plugins/*/Binaries/*
# Builds
Build/*
# Whitelist PakBlacklist-<BuildConfiguration>.txt files
!Build/*/
Build/*/**
!Build/*/PakBlacklist*.txt
# Don't ignore icon files in Build
!Build/**/*.ico
# Built data for maps
*_BuiltData.uasset
# Configuration files generated by the Editor
Saved/*
# Compiled source files for the engine to use
Intermediate/*
Plugins/*/Intermediate/*
# Cache files for the editor to use
DerivedDataCache/*
# 나중에 추가한 게임 에셋 경로 추가하기