본문 바로가기

Game/Unity

Unity3D에서 GitHub하자!

우선 등록

우선 GitHub에 가입 해 계정을 가져옵니다. GitHub의 톱 페이지 에서 "Plans, Pricing and Signup"를 눌러 등록 페이지로 이동합니다.

"Free for open source"를 선택하세요. "Create a free account"를 누릅니다.

사용자 이름, 이메일, 비밀번호를 입력하여 등록합니다.

이메일 주소로 확인 메일이 도착합니다. 입력 한 정보를 사용하여 로그인하세요.

이런 식으로 홈 화면으로 전환해야합니다.

GitHub for Windows

GitHub는 본래 Git을 사용하기위한 서비스이지만, 이것을 더 간단하게 사용이 용이 한 도구를 GitHub 자신이 릴리스하고 있습니다. 그것이 GitHub for Windows 입니다.

적당히 설치하고 시작합시다. 이런 느낌입니다. Metro 인 UI로 근사하네요.

왼쪽에있는 log in 버튼을 눌러 로그인합니다. 앞서 등록한 이메일 주소와 비밀번호를 입력하십시오.

로그인이 완료되면, 즉시 자신의 저장소를 만들어 보자. 위쪽에있는 "+ add"버튼을 누릅니다.

저장소의 정보를 입력하는 화면으로 전환합니다. 저장소의 이름과 간단한 설명을 입력합니다.

입력이 완료되면 "Create"버튼을 눌러 저장소를 만들어 보자.

저장소 만들기에 성공하면 이런 식으로 local 측에 저장소가 출현합니다.

저장소가 GitHub 측에도 생성 된 것을 확인하자. 오른쪽 클릭 메뉴에서 "view on github"를 선택합니다.

이런 식으로 GitHub 측에 자신의 만든 저장소 페이지 수 있는지 확인할 수 있습니다 (내용은 아직 비어 있음).

그런 다음 로컬 저장소 곳도 봐 봅시다. 오른쪽 클릭 메뉴에서 "open in explorer"를 선택합니다. 내 문서의 GitHub 화에있을 것입니다.

지금은 아직 Git 설정 파일 (. gitignore. gitattributes) 밖에 존재하지 않습니다.

Unity 프로젝트 만들기

우선 연습하는 것으로, 매우 간단한 Unity 프로젝트를 관리하고보기로합시다. 갑자기 저장소 안에 프로젝트를 만들면 조금 귀찮은 일들이 일어나기 때문에 임시로 데스크톱 프로젝트를 만듭니다.

상자와 광원을 두었을뿐 간단한 장면을 보았습니다. 그것 스크립트 Cube.js를 만들고, 내용은 텅 빈 채로 상자에주고 있습니다.

앞으로이 프로젝트를 GitHub에서 버전 관리 만, 그 전에 Unity 측의 설정을 조금 만져해야합니다. "Edit"메뉴의 "Project Settings"에서 "Editor"를 선택하십시오. Inspector에 Editor Settings가 표시됩니다.

따라서 다음과 같이 변경합니다.

  1. "Version Control"의 "Mode"를 "Meta Files"로 변경.
  2. "Asset Serialization"의 "Mode"를 "Force Text"로 변경.

(2) 별도로하지 않아도 좋지만, 모처럼이므로 해두면 좋습니다.

이제 저장소에 담기 준비가되었습니다. 일단 Unity를 종료 저장소 고맙소 지​​금 아까 만든 Unity 프로젝트 탐색기에서 엽니 다.

Unity 프로젝트의 내용을 저장소 측에 브치 붐비합시다. sln 파일 이니 뭐니 수 있다면 그것도 함께 넣어 버렸합시다.

첫 번째 커밋

프로젝트의 내용을 저장소 측의 디렉토리에 넣으면 그 변경 사항을 GitHub for Windows가 자동으로 감지합니다. 이런 식으로 "uncommitted changes (커밋되지 않은 변경)이있어!"라고 표시하고옵니다.

단, 검색된 내용을 보면, 상당히 쓸데없는 것이 들어있는 것을 알 수 있습니다. Library 디렉토리 아래 중간 생성물이므로 관리 할 필요가 없으며, sln 파일 이니 뭐니도 관리 할 필요가 없습니다. 이러한 쓸데없는 파일을 무시하는 설정을 실시합시다.

기어 아이콘에서 "settings ..."를 선택합니다.

이런 식으로 설정 파일을 편집하는 화면으로 이동합니다.

왼쪽의 "ignore files"라는 것이 "무시 파일"의 설정입니다. 여기에 쓸데없는 파일을 열거하자.

다음 행을 추가합니다.

Library
Temp
*. pidb
*. unityproj
* .. sln
*. userprefs

입력 한 후 "Update"버튼을 눌러 적용합니다. 그러면 자동 감지 된 파일은 다음과 같이 최소한의 구성으로 변화하고있는 것입니다.

이것을 커밋하기로합시다. 커밋 메시지를 입력 한 후 "Commit"버튼을 누릅니다.

커밋에 성공하면 이런 식으로 기록으로 표시됩니다. "unsynced commits"라고하는 것은 "아직 GitHub 서버에 접속하지 않은 커밋"이라는 뜻입니다.

변경의 커밋 동기화

등록 작업이 완료 했으므로 다음은 이에 대해 변경 한 것입니다. 우선 Cube.js 뭔가 적당한 추가 변경하자.

변경하면이를 GitHub for Windows가 자동으로 감지합니다.

"Show"버튼을 눌러 탐지를 표시합시다.

변경 대상이 텍스트 파일의 경우 이러한 변경 내용이 구체적으로 표시됩니다.

빨강은 변경에서 삭제 된 부분, 녹색 변경에 의해 추가 된 부분을 나타냅니다.

문제 없기 때문에, 이것으로 커밋합시다. 커밋 메시지는 알기 쉽고 간결하게 쓰십시오.

커밋하면 unsynced commits이 2 개로 늘어납니다. 따라서 커밋마다 기록이 축적되어갑니다.

이제 이러한 변경 사항을 GitHub 서버와 동기화하자. "Publish"버튼을 누릅니다.

동기화를 시작하면 진행 막대가 표시됩니다. 잠시 후에 완료됩니다. 성공적으로 완료되면 다음과 같이 기록이 history쪽으로 이동합니다.

이제 이러한 변경은 GitHub 서버에서 전 세계로 공유되었습니다!

제대로 공개되는 것을 GitHub 웹 사이트 측에서 확인하자. 기어 메뉴에서 "view on github"를 선택합니다.

이런 식으로 변경된 상태가 공개되는 것입니다.

이 페이지의 중간 쯤에있는 "Commits"탭을 열면 커밋의 역사를 볼 수 있습니다.

제대로 기록도 포함 해 공유되는 것을 알 수있었습니다.

공동 작업

이상이 GitHub를 혼자 사용하는 경우의 연습입니다. 여기서부터는 공동 개발자와 협업에 대해 설명합니다.

우선이 저장소에 공동 개발자 (협력자)를 추가 작업을 수행합니다. GitHub 웹 사이트의 저장소 페이지를 열고 "Admin"버튼을 누릅니다.

관리 화면으로 이동합니다. 여기에서 "Collaborators"를 선택합니다.

아직 협력자는 한 명도 없기 때문에 비어 있습니다. 여기서 위와 같이 편집 상자 안에 협력자의 사용자 이름 (또는 이메일)를 입력하고 Add 버튼을 누릅니다.

성공하면 다음과 같이 협력자가 등록 될 것입니다.

이렇게 등록 된 협력자는이 저장소를 볼뿐만 아니라 변경 내용을 동기화 할 수있게됩니다.

추가 된 협력자 사람은 GitHub for Windows를 엽시다. 다음과 같이 "github"측의 목록에서 공유 된 저장소 이름이 출현하고있는 것입니다.

"Clone"버튼을 눌러이 저장소를 복제합니다. 복제는 저장소를 GitHub 서버 측에서 로컬로 끌어 오는 것을 나타냅니다. 저장소를 Clone 해 버리면, 나머지는 보통 자신의 저장소처럼 처리 할 수​​ 있습니다.

협력자와 동기화

여기서 협력자에게 부탁하여 Cube.js에 알맞은 변경하려고 색칠. 변경 내용을 커밋하여 그것을 GitHub 서버와 동기화하는 데까지 해 주었으면합니다.

협력자 측의 작업이 완료되면 해당 작업 결과를 근거리와 동기화시켜 보자. GitHub for Windows에서 저장소를 열고 위쪽에있는 "sync"버튼을 누릅니다.

진행 막대가 출현하고 잠시 기다리게됩니다. 잘하면 다음과 같이 협력자 측의 변경이 근거리 저장소에 반영되는 것입니다.

이해하기 어려운 화면으로 미안 해요. history의 맨 위에있는 "메시지를 추가"는 협력자가 변경 한 내용입니다. "Hello from collaborator!"라고 표시하는 처리를 추가 한 것 같네요.

동시 편집에 의한 충돌 해결

이런 느낌으로 협력자간에 변경 내용을 공유하고 공동 작업을 진행시켜 나갈 수 있습니다.그러나 이렇게 이동이 평화롭게 진행주는 것은 각각의 변경 부분이 겹치지 않는 경우입니다.여러 협력자가 동시에 같은 장소를 변경 한 경우 해당 변경 사항은 "명중"(conflict)로 감지됩니다. 충돌은 기계적으로 처리 할 수​​ 없습니다. 반드시 수작업에 의해이를 해결해야합니다.

충돌의 해결을 한 번 해보기로합시다. 우선 여러 사람이 동시에 같은 장소를 변경하고 로컬에 커밋하는 곳에서 작업합니다. Cube.js 뭔가 독특한 메시지를 추가하는 등이 예로 좋습니다.

우선 누군가가이 변경을 GitHub 서버와 동기화하자. 첫 번째 동기화 동작한다.

그런 다음 다른 사람이 동기화하면 거기서 충돌이 발생합니다. 다음과 같은 메시지가 나타날 것입니다.

"충돌이 발생 했으므로, shell을 열고 수동으로 해결하거나 중단 (abort)가 달라집니다」라고하는 느낌의 메시지입니다. 여기에서 "open shell"버튼을 눌러 확인 작업을 시작하기로합니다.

Shell이​​라고하는 것은, 이른바 명령 줄 것입니다. 이런 식으로 살풍경 한 창이 열립니다.

여기에서 git 명령을 사용하여 해결 작업을 실시 합니다만, 조금 초조 때문에 GUI를 사용하기로합시다. "git gui"를 입력합니다.

다음과 같이 Git 표준 GUI가 나타납니다. GitHub for Windows와 비교하면 조금 레트 르 한 느낌입니다 만, 이것이 본래의 Git에 포함 된 도구입니다.

이 화면에서는 충돌의 내용이 표시되어 있습니다. 만약 충돌하고있는 부분에 대해 자신의 변경은 파기 해, 상대의 변경만을 적용한다면 오른쪽 클릭 메뉴의 "원격 쪽을 채용」을 실행하는 것만으로 해결이 완료됩니다.

반대로 빈 변경 내용을 삭제하고 자신의 변경만을 적용한다면, "로컬 쪽을 채용」을 실행합니다.

단지 많은 경우 자신의 변경도 상대의 변경도 동시에 보관할 것입니다. 이러한 경우 수동으로 변경합니다. 편집기에서 충돌하는 파일 (여기에서는 Cube.js)를 엽니 다.

충돌을 일으키고있는 부분은 "«««" "»»»"같은 마크로 둘러싸인 있습니다. 이 안을 정리하여 제대로 된 형태로 고쳐주고 있습니다.

이런 느낌이 좋습니다.

변경이 완료되면 Git의 GUI로 돌아갑니다. 변경이 완료된 파일을 선택하고 메뉴의 "커밋"에서 "커밋 예정"를 실행합니다. 그러면 그 파일은 "준비된 (커밋 예정받는) 변경"으로 이동해야합니다.

이제 Git의 GUI 작업은 끝입니다. GUI는 닫고 Shell로 돌아갑니다. 마지막으로, 충돌의 해결이 완료된 것을 전달하기위한 명령 "git rebase-continue"를 실행합니다.

성공하면 exit에서 shell을 종료시켜보세요.

여기까지의 작업이 잘 있으면 해결 작업 내용이 unsynced commits로 커밋 된 것입니다.

나누기 여기에서 sync합시다. 얼마전에 다른 사람이 다시 충돌을 만들어 있지 않으면 이번에 성공적으로 동기화하는 것입니다.

동기화에 성공하면 GitHub 웹 사이트에서 커밋을 확인하자.

수고하셨습니다.


출처 : http://keijiro.github.io/unity-github-tutor/