많은 시행착오결과 github사용법을 정리한다.
우선 git를 깔자파일을 짤라서 옮겨주는 git lfs가 자동 포함되는것 같다.
다음 git desktop을 깔자
언러일얼 열고 Empty로 프로젝트를 만들자.
언리얼에서 git를 생성한다. lfs를 체크해준다.
일단 끄고 나온다.
.gitignore를 편집한다. /Content/StartContent/ /Content/Characters/ 를 추가한다.
github desktop을 열고 add repository를 하던지 새로생긴 폴더를 끌어다. 놓는다.
그럼 또 lfs를 init할껀지 물어본다 일단 난 했다.
이후 찝찝하니
폴더명위를 우클릭하고 git bash를 실행시키고
- git lfs install
- cd "프로젝트 경로"
- git lfs track ".uasset"
- git lfs track ".umap"
이후 githubdesktop에서 커밋을 하던디 언리얼에서 Submit을 하자 그럼 github에 올릴 리스트 정리를 한거다 아직 안올라갔다.
githubdesktop에서 publish나 push를 하면 올라간다.
github site에서 레포지토리가 잘만들어졌는지 확인한다.
이후 컨텐츠에 Map폴더를 만들고 새로운 레벨을 만들고 ProjectManager에서 시작 맵으로 지정해보자.
Fetch나 submit을 하고 Push한후 github site에서 반영이 되는지 확인하자.
자 이제 언리얼에서 컨텐츠브라우저에서 +를 누르고 ThirPerson과 StarterContent를 추가하자 이 2개만 1GB이다. ThirdPerson을 추가햐면 ThirdPerson폴더보다는 Characters폴더가 크기 때문에 /Content/Characters/ 로 막아주어야한다.
GithubDesktop으로 가보면 뭔가 파일이 추가는 되지만 Characters와 StarterContent 아래 파일은 추가가 안되는걸 확인하자. 잘안된다면 처음부터 다시 체크하자. 물론 추가가 안되므로 다른 싸이트에서는 클론후 ThirdPerson과 StarterContent를 추가해야한다ㅣ
이걸 하는 이유는
Unreal은 파일도 크고 용량도 커서 Github사용하기가 무척 까다롭니다.
무료로 사용하기 위해서는 용량을 줄여야한다.
그래서 머리를 짜낸게 StartContent및 Character폴더를 .gitignore에 포함 시키는거다.
우선 .gitignore의 이해가 필요하다. 간단하다 불필요한 파일이나 폴더를 써 놓는건다. !를 앞에 써서 풀어주기도 하지만.
간단한 문법
# : comments
# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf
위 문법을 이용해서 Content폴더내 용량이 많이 나가는 StarterContent와 Characters폴더를 추가하자
폴더명 앞의 /는 현재 디렉토리 폴더명 뒤 /는 폴더뒤 모든 서브디렉토리를 뜻한다.
Binaries
DerivedDataCache
Intermediate
Saved
/Content/ThirdPerson/Input/
/Content/ThirdPerson/Maps/
/Content/FirstPerson/
/Content/StarterContent/
/Content/TopDown/
/Content/Characters/
.vscode
.vs
*.VC.db
*.opensdf
*.opendb
*.sdf
*.sln
*.suo
*.xcodeproj
*.xcworkspace
https://coding-hell.tistory.com/123
https://www.gitignore.io/ 에 가셔서 Visual studio, UnrealEngine을 선택하면 다음과 같은 gitignore 파일이 출력됩니다.
이 파일을 이용해서 git에 적용하셔도 됩니다.
https://zenoahn.tistory.com/33
https://velog.io/@psk84/.gitignore-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0
https://nesoy.github.io/articles/2017-01/Git-Ignore
개요
💡 Unreal Engine과 Git, Github를 연동해서 팀프로젝트를 진행하자
이번에 새로운 팀원들과 뱀서라이크 장르로 모작을 만드는 프로젝트를 진행하게 되었습니다.
그래서 팀원들과의 협업을 위해 Unreal Engine에 Git과 Github를 연동해서 작업할 수 있는 환경을 구축하고자 합니다.
아래의 영상을 참고하였습니다.
또한 .gitignore 부분을 꼭 확실히 읽어 주세요!!
과금 요소가 발생하거나 Github 사용에 제한이 생길 수도 있습니다.
본론
Git 설치
우선 Git을 설치해야 합니다.
Git 설치 링크
위 링크로 이동하여 Git을 설치해주세요.
아래의 다운로드를 클릭하시고,
각 Pc의 버전에 맞게 설치해주세요.
저는 Windows11 64bit라서 아래의 버전을 설치했습니다.
설치 후 여러 설정창이 뜨는데 모두 Next로 넘어가신 후 설치 완료해주세요.
그리고 Window검색에서 Git bash를 검색해서 설치 확인해주세요
그리고 Git bash를 켜주시고, "git lfs install" 명령어를 입력하고 꺼주세요.
Github Desktop설치
아래의 링크로 이동하셔서 Github Desktop 어플리케이션을 설치해주세요.
설치하시면 아래 창이 뜨는데
본인 Github 계정으로 연동해주시면 됩니다.
언리얼 에디터 설정
언리얼 에디터를 켜주세요.
Git 플러그인 설치
Edit - Plugins에 들어 가시고
Git을 설치해주세요.
그리고 Restart가 뜨시면 재시작 해주세요.
프로젝트를 Git과 Github를 연동하는 과정입니다.
Git 관리자 역할을 맡으신 분만 하시면 됩니다.
팀원으로 프로젝트를 사용하실 분들은 아래의 프로젝트 팀 멤버 접근 방법부분부터 확인해주세요.
Revision Control Login
에디터 우측 하단에 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 명령어 입력
그리고 다시 Git Bash를 열어서 아래의 명령어들을 모두 입력해주세요.
- git lfs install
- cd "프로젝트 경로"
- git lfs track ".uasset"
- git lfs track ".umap"
프로젝트 경로는 파일 탐색기에서 경로 이동하시고 복사해서 넣어 주시면 됩니다.
Submit Content
다시 Unreal 에디터로 이동하시고 Submit Content 눌러주세요.
아래 창이 뜨면 Description 작성해주시고, Submit 해주세요.
오류시 해결
만약 위 과정 중 오류가 난다면 언리얼 에디터와 Git을 모두 종료해주세요.
그리고 작업관리자를 켜서 git for windows가 남아 있는지 확인하고 있다면 모두 종료해줍니다.
그리고 프로젝트 파일로 이동하셔서 .git 폴더로 이동합니다.
.git이 없다면 숨긴 항목 표시해주세요.
그리고 안의 index파일을 삭제해주세요.
그리고 다시 .exe파일로 바로 에디터를 켜서 Submit Content로 이동해서 진행해주세요.
History 확인
위 과정들이 완료 되었다면 데스크탑 어플리케이션의 History에 정상적으로 들어간 것을 확인할 수 있습니다.
.gitignore
❗여기 내용은 매우 매우 중요합니다. 경우에 따라 과금이 발생할 수도 있습니다❗
❗여기 내용은 매우 매우 중요합니다. 경우에 따라 과금이 발생할 수도 있습니다❗
언리얼 엔진 뿐만이 아니라 대용량 파일은 Github에 바로 올릴 수 없습니다.
그래서 LFS를 사용해서 따로 관리를 해주어야 합니다.
하지만 Github는 무료로 사용할 수 있는 Git LFS Data의 용량과, 대역폭이 1GB로 제한되어 있습니다.
저처럼 결제를 하실게 아니라면 모든 파일을 업로드하면 안되겠죠?
이에 대해서 "인생 언리얼 교과서"의 저자이신 이영호 강사님께 자문을 구했습니다.
일반적인 팀프로젝트는 과금이 필요할 정도로 용량이 크지 않다.
보통 이미지 파일을 확인하지 않아 용량을 많이 잡아 먹는다.
그래서 100MB가 넘어가는 에셋, 이미지들은 원격 저장소에 올리지 않고,
팀원들과 협의하여 로컬 환경에서 따로 추가하는 방식으로 진행하는 것이 좋다.
그래서 직접 파일들을 확인하여, 100MB가 넘어가는 폴더는 .gitignore에 추가해주세요.
또한, 아래 사진처럼 generate를 통해 새롭게 생성되는 폴더는 제외해주세요.
처음부터 모두 업로드해서 결제를 해야 한다거나,
결제를 안해서 이용제한이 걸리는 일이 없게 합시다.
Publish Repository
Github 데크스탑 어플리케이션 상단에 Public repository가 있습니다.
눌러주세요.
그러면 아래의 창이 뜹니다.
프로젝트명, Description 작성해주세요.
아래 체크 옵션은 repository를 public으로 할지 private로 할지에 대한 설정입니다.
저는 private로 진행하기 위해 체크하겠습니다.
잠시 기다리신 후 정상적으로 동작했다면 위의 publish repository가 fetch origin으로 변경됩니다.
이제 Github 홈페이지로 이동하겠습니다.
Github 홈페이지 확인
여러분의 Github에 들어가시면 언리얼 프로젝트가 Repository에 연동된 것을 확인할 수 있습니다.
프로젝트 팀 멤버 접근 방법
Github 팀원 초대
Settings - Collaborators - Add people을 눌러 팀원을 검색해서 초대하시면 됩니다.
프로젝트 접근 방법
여러 방법이 있지만 우리는 Github 데스크탑 어플리케이션에서 Clone하는 방법으로 진행하겠습니다.
Github 데스크탑 어플리케이션을 켜주세요.
그리고 Add를 눌러 Clone Repository를 선택합니다.
클론할 프로젝트를 선택한 후, 경로를 지정해줍니다.
그리고 Clone을 누르고 기다려 주세요.
작업이 완료되면 프로젝트 폴더로 이동해 프로젝트.exe를 우클릭하고 Generate Visual Studio project files를 눌러서 작업을 진행해 주세요.
그리고 프로젝트를 시작하면, 프로젝트를 가져오는데 성공합니다.
Check Out & Submit
Git에서 Check Out이라는 행위는 일반적으로 코드 저장소(repository)에서 특정 브랜치(branch)로 전환하는 작업입니다.
이 작업을 위해 원격 저장소에 올려둔 코드를 로컬 컴퓨터로 내려받는 작업이 반드시 선행이 되어야 합니다.
저는 프로젝트에 이미지를 하나 넣겠습니다.
이미지 추가라는 수정사항이 생긴겁니다.
이미지를 넣으면 "?"로 표시가 됩니다.
여기서 우측하단 Git에서 Check Out Modified Files를 누릅니다.
그러면 이미지의 "?"가 "+"로 변경됩니다.
그리고 이번엔 Git에서 Submit Content를 눌러 주세요.
Submit이 완료되면 이미지 파일에 마크없이 남게 됩니다.
Push
Push는 수정한 Local의 작업 내용을 우리의 원격 저장소로 보내기 위한 작업입니다.
Submit을 끝냈으니 Github 데스크탑 어플리케이션으로 이동합니다.
그럼 History에 우리가 Submit한 내용에 대한 Description과 함께 Commit되어 있습니다.
Commit은 수정 사항들을 추출해서 저장소에 기록합니다.
수정된 내용만 관리하고 코드가 변화된 시간 순서에 따라서 영구적으로 저장합니다.
그리고 상단의 Push origin을 눌러보겠습니다.
잠시 로딩 뒤에 Fetch로 변경됩니다.
Github로 가서 확인해보면 IU_Test_Image가 들어가 있는걸 확인할 수 있습니다.
Fetch & Pull
Fetch와 Pull은 원격 저장소에 수정사항이 있을 때, 내 Local의 내용으로 수정사항을 적용하는 작업입니다.
다만 매우 큰 차이가 있습니다.
Fetch는 원격 저장소의 커밋들을 로컬 저장소로 가져오되, 자동으로 병합(Merge)를 해주지 않습니다.
Pull이란 원격 저장소의 정보를 가져오면서 자동으로 로컬 브랜치에 병합(Merge)까지 해줍니다.
위에서 IU_Test_Image라는 파일이 추가로 생겼을 때 로컬에서 작업하고 있는 팀원들은 IU_Test_Image가 존재하지 않습니다.
이때, Fetch와 Pull을 통해서 수정사항을 적용할 수 있는 것이죠.
상단 툴바에서 Repositry를 선택해서 Fetch와 Pull를 선택할 수 있습니다.
C++ 프로젝트 사용 시
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등의 용어들은 다음에 따로 포스팅하도록 하겠습니다.
'DXWave > 참조' 카테고리의 다른 글
블루프린트 UE 저장하는 곳 (0) | 2024.10.16 |
---|---|
Unreal Anim Notify (0) | 2024.10.10 |
GitHub 연동 (1) | 2024.10.04 |
블렌더 스컬프트 모드 강좌 백설공주 (0) | 2024.10.03 |
나이아가라 참조 (0) | 2024.10.01 |