내일배움캠프 16일차 - Git 2 (언리얼 협업을 위한 깃 기초 1, gitignore, gitattributes, commit)

Git 사용법 1편 링크

.gitignore 파일

리모트에 올리고 싶은 파일이 있는 반면, 본인에게만 필요한 파일은 빼고 싶을 때가 있다.
그럴 때 해당 파일을 "리모트에 올리지 않겠다(ignore)"는 의미로
.gitignore 파일에 해당 파일의 이름 혹은 폴더 이름을 작성하면 된다.

[주의사항]
 - .gitignore 파일은 반드시 .uproject 파일이 있는 폴더와 함께 위치해야 한다.
 - 앞으로 작성될 .gitignore 파일 내용은 이를 가정하고 작성되었기 때문이다.
 - 다른 위치에 위치하게 된다면 제대로 동작하지 않게 된다.
 - 이를 유념한 채로 앞으로의 실습을 진행한다.

  • .gitignore 파일을 수동으로 추가하는 방법
    로컬 레포지토리 폴더 > 새 텍스트 파일 > 이름 ".gitignore" (txt확장자 제거)

  • .gitignore 파일 열람방법
    .gitignore 파일 우클릭 > 메모장에서 편집 혹은 메모장에서 .gitignore파일을 드래그

  • 언리얼 프로젝트 사양의 .gitignore 파일 (작성자 전용: 비공개 링크)
    아래 파일은 해당 git 실습자료의 원 저자가 언리얼 프로젝트에 사용하기 위해 작성한 파일이다.
    필요 시 해당 파일을 덮어쓰거나 삽입하면 된다.

.gitattributes 파일

레포지토리 내 특정 파일이나 디렉터리에 대해 특정한 동작을 정의하여, 환경이 다른 협업 환경(Windows/Linux/Max)에서도 일관된 파일 상태를 유지하도록 돕는 설정 파일이다.

.gitignore는 추적에서 제외할 파일을 설정하고, .gitattributes는 추적 중인 파일의 '동작 방식'을 설정한다는 차이가 있다.

이 파일은 특히 팀 내에서 Windows(CRLF)와 Max/Linux(LF) 사용자가 섞여 있거나, 이미지/영상 등 대용량 파일을 다룰 때 필수적이다.


※ 이미지/영상의 대용량 파일을 .gitattributes에서 관리하는 방법

 - GitHub는 기본적으로 100MB 이상의 파일을 허용하지 않기 때문에 mp4등의 대용량 파일의 커밋을 시도하면 에러가 발생한다. 

 - 해당 파일들을 업로드하기 위해서는 Git-LFS(Large File Storage)를 설치해 해당 파일을 등록(track)하여 업로드한다. 이 과정에서 해당 파일을 관리하는 코드가 .gitattributes에 추가되는 것이다.


.gitattributes 파일 만드는 방법 (예시)

해당 폴더 열기 > 주소창에 "cmd" 타이핑 후 엔터

git lfs track "*.txt" (모든 .txt 파일을 lfs 대상 파일로 추적)

.gitattributes 파일이 만들어진 모습

.gitattributes 파일 내의 내용

이 방법은 어디까지나 시연를 위한 예시로, .gitattributes는 프로젝트의 성질에 맞게 설정해야한다.
  • 언리얼 프로젝트 사양의 .gitattributes 파일 (작성자 전용: 비공개 링크)
    아래 파일은 해당 git 실습자료의 원 저자가 언리얼 프로젝트에 사용하기 위해 작성한 파일이다.
    필요 시 해당 파일을 덮어쓰거나 삽입하면 된다.

이렇게 만들어진 .git / .gitignore / .gitattributes 세 파일은 언리얼파일 .uproject가 있는 폴더 한 곳에 위치해있어야 한다.

C++ 언리얼 프로젝트 Commit 방법

1) 에픽 게임런처 실행 후 프로젝트 생성.

Project Location을 로컬 레포지토리 폴더 경로로 잡을 필요 없음. 아무 위치 선택.


2) 로컬 레포지토리 폴더로 프로젝트 관련 파일과 폴더들을 이관

가장 중요한 폴더와 파일들만 선택. Config 폴더, Content 폴더, Source 폴더, .uproject 파일 선택 후 복사.
나머지 폴더와 파일들은 빌드하며 다시 생기므로 .gitignore 파일에도 기재되어 있다.

로컬 레포지토리(.git 폴더가 있는 곳)에 붙여넣은 모습.
붙여 넣었다면 이전의 프로젝트 폴더는 삭제한다.

3) 솔루션 파일 만들기

.uproject 파일을 [Shift + 우클릭] > [Generate Visual Studio files 클릭]
이렇게 하면 .sln 파일과 여러 폴더들이 생성된다.


4) 빌드 해보기

만들어진 .sln 파일을 실행해서 빌드한다.
나머지 폴더(Binaries, ...)들도 생성된다.


5) 깃허브 그래픽쉘(소스트리, 깃허브 데스크탑)에서 로컬 레포지토리 관리


[Commit하기 전 주의사항]

1) 반드시 언리얼 엔진을 끄고 Commit / Push 해야한다.

 - 언리얼 엔진이 꺼지면서 특정 내용이 수정될 수 있기 때문이다. 그렇게 되면 추가로 Commit해야한다.
 - 항상 문제를 일으키는 것은 아니나, 오작동을 방지하기 위해 끄고 Commit하는 습관을 들이자.


2) 반드시 변경사항(수정/추가된 파일)을 꼼꼼히, 천천히 살펴봐야한다.

 변경사항 중 본인이 작업한 내용이 아니라면 해당 내용은 제거해야한다.
 애매한 부분은 다시 언리얼을 켜서 팀원과 확인 후 제거 필수.

 - 대부분의 문제가 Commit을 아무 생각없이 해버리기 때문에 발생한다.

 - 1~2번 정도는 실수라고 볼 수 있으나, 3번부터는 고의로 여겨질 가능성이 있다.

 - 언리얼 엔진 종료 → 그래픽 쉘 새로고침 → 변경사항 세부체크 후 진행 필수

댓글

이 블로그의 인기 게시물

내일배움캠프 사전캠프 - 사전캠프설 연휴 커피 파밍 이벤트 작품 [ EXTREMITY ]

내일배움캠프 29일차 - 커리어데이 2일차 : 클라이언트 프로그래머로서 포트폴리오, 입사준비팁