유니티를 사용하시다 보면 깃허브라는 말을 심심치 않게 들으셨을 겁니다. 이를 알아보려고 검색해도 처음 사용하시는 분들에게는 개념자체가 어려워서 이해하기가 쉽지 않으셨을 텐데요. 이 글에서는 그런 분들을 위해서 이를 알기 쉽게 설명하고 왜 사용하는지, 핵심적인 사용법에 대해서 알아보겠습니다.
목차
[무엇인가?]
- Git 이라는 저장소시스템을 관리하기위한 클라우드 시스템이 GitHub입니다. 쉽게 말하자면 프로젝트를 저장하기 위한 시스템이 Git 이고 GitHub 는 개인 컴퓨터가 아닌 서버를 빌려서 관리를 용이하게 해주는 프로그램입니다.
[왜 사용하는가?]
[버전 관리를 용이하게 하기 위함]
- 여러 버전을 언제든지 선택하여 플레이를 가능하게 만들어 줍니다.
- 예시
- 만약 게임에서 길드라는 시스템을 추가한 버전이 1.0.1버전이고 추가하기 전 버전이 1.0.0버전이라고 해봅시다. 이때 기획자가 시스템이 들어 가기전과 시스템이 들어간 후의 버전을 플레이하고 싶다고 요청했을 때 깃허브를 사용하지 않으면 알집으로 각각의 버전을 컴퓨터의 저장해야 하는 경우가 생기게 됩니다.
[병렬 작업]
- 클라우드 기반의 시스템이기 때문에 서버에 올려진 프로젝트를 언제든지 가져와 코드를 작성하여 업데이트를 할 수 있습니다. 좀 더 알기 쉽게 예시를 들어 보겠습니다.
- 예시
- 이를 사용하지 않고 여러 작업자가 게임을 만든다고 가정했을 때 프로젝트를 각자 컴퓨터에 다운받아서 코드를 작성한 뒤. 각자의 코드를 수동으로 병합해야 하는 번거로움이 생깁니다. 하지만 사용 시 서버에 올라간 프로젝트를 내 컴퓨터에 받아와서 코드를 작성한 뒤 클릭한번으로 병합이 됩니다.
[개인 프로젝트도 깃허브를 사용하면 프로젝트 관리가 용이하다.]
- 개인 프로젝트를 할 때 이를 사용하지 않으면 자신의 컴퓨터나 구글드라이브에 저장해서 관리할 것입니다. 그렇게 관리하다 보면 나중에는 이를 찾기도 쉽지 않고 버전관리도 안돼 있기 때문에 자신의 코드가 이상 생겨 프로젝트가 플레이가 되지 않을 때 그 이전 버전으로 돌아가기도 쉽지 않습니다.
[깃허브 데스크탑 사용해보기.]
회원 가입
https://github.com/signup?source=login
- 위 사이트에서 회원가입을 합니다.
repository 만들기

- 회원가입 후 우 상단에 위치한 자신의 프로필을 클릭하여 Your repositories를 클릭해 줍니다.

- New를 클릭하여 repository 생성 페이지로 넘어가 줍니다.

- Repository name : 프로젝트 이름을 설정해줍니다.
- public or private :프로젝트를 모두에게 보여줄 것인지, 자신과 설정한 사람들에게만 보일 것인지를 선택해 줍니다.
- Add.gitignore : 버튼을 클릭하여 Unity로 설정해 줍시다. 기본 세팅을 유니티로 하겠다는 뜻입니다.
- 위 세가지를 설정하시고 Create repository 클릭!
실행하기
- 위 링크를 클릭하여 설치해 줍니다.
- 데스크탑은 깃허브를 쉽게 다루기 위한 UI 툴이라고 생각하시면 됩니다.

- 사진의 빨간 동그라미가 쳐진 화살표를 클릭 한 뒤 Add -> Clone repository 클릭

- 자신의 만들어 뒀던 repository를 클릭하고 Clone 클릭
repository에 유니티 프로젝트 넣어주기

- 빨간 줄의 Show in Explorer를 클릭한 뒤 파일을 열어줍니다.
- 프로젝트를 만들어서 파일에 전부 넣어줍니다.

- 다시 에디터에 돌아오면 changed files에 여러 파일이 올라와 있을 겁니다.
- 올라온 파일들은 유니티 파일들이며, 저처럼 프로젝트 세팅 완료 같은 문구를 입력해준 뒤 Commit to main이라는 버튼을 클릭해 주시면 클라우드 서버에 올라간 것입니다.
[기본 동작 알아보기.]
Pull, Push, Fetch
- 프로젝트를 올릴 때 데스크탑의 우 상단에 Push라는 버튼이 생겼을 겁니다.
- Push는 변경사항을 클라우드 서버에 올리겠다는 뜻입니다.
- 올리고 난 후 우 상단 버튼이 Fetch로 바뀌셨을 겁니다.
- Fetch는 클라우드 서버에 변경사항이 있는지 확인해 보겠다는 뜻입니다.(다른 작업자가 Push를 했을 경우)
- 만약 Fetch를 했을 때 다른 작업자가 자신의 작업물을 올렸다면 Pull이라는 용어로 버튼이 변경 되셨을 겁니다.
- Pull은 Fetch를 누른 후 다른 작업자가 서버에 작업물을 올렸으니 자신의 컴퓨터로 변경사항을 가져 오겠냐고 물어보는 것입니다.
[그 외 동작]
- Branch
- 브랜치는 여러 갈래로 나눌 수 있는 기능입니다.
- 만약 자신의 게임의 길드 시스템이 들어간 버전과 들어가지 않은 버전을 나눌 때 각각의 브랜치를 만들어서 관리할 수 있습니다.
- Merge
- 머지는 각 사용자들이 서로의 코드를 서버에 올릴 때 자동으로 변경사항을 병합해주는 행위입니다. 하지만 병합할 때 충돌이 일어나는 경우가 있습니다.
- 충돌이 일어나는 경우는 꽤 복잡하여 다음 글에서 자세히 알아보겠습니다.
[깃허브 데스크탑 이외의 사용 할만한 GUI TOOL 추천]
- SourceTree
- 꽤 많은 기업들이 소스트리를 사용하고 있습니다. 이유는 아무래도 예전부터 사용하던 거라 굳이 바꿀 필요가 없기에 사용하는 경우가 많습니다.
- Rider에서 제공해주는 툴
- Rider라는 intelliJ에서 제공해주는 코드 편집기 입니다.
- 내부에서 프로젝트를 관리 할 수 있는 기능을 제공해 주어, 데스크탑에 있는 모든 기능을 다 사용 할 수 있습니다.
- 유니티에 최적화 되어 있다보니 사용하기 편하며 특정 부분의 코드를 날짜별로 수정 이력을 볼 수 있는 등 유용한 기능들이 많습니다.
[개인적인 생각]
처음에 어떤 것을 사용 해야 하나 고민이 되실 텐데요. 어떤 것을 사용하셔도 무방하다고 생각합니다. 제가 소개해준 툴 중 한 개만 잘 사용 하셔도 기본적인 기능들은 유사하기 때문에 나중에 다른 툴을 사용할 때 빠르게 학습이 가능하기 때문에 선택보다는 사용해보며 익숙해지고 기본 개념을 잘 이해하시는데 초점을 두시는 게 좋다고 생각합니다.