2017.01.06 11:20

마지막으로 branch 관리하는 방법에 대해 알아겠습니다.


SVN은 branch 관리하는게 상당히 까다롭고 시간이 많이 걸리는 문제점이 있었는데, git은 상당히 가볍고 로컬 저장소와 원격 저장소가 분리되어 있어서 각자의 작업을 진행하며 다른 작업자의 작업을 방해하지 않으면서도 백업/롤백이 손쉽게 가능합니다.


첫번째로 branch를 만들어 보겠습니다. 이름은 "sampleBranch"로 해보겠습니다.



아래처럼 branch가 생성된 것을 확인할 수 있습니다.




이제 branch 에서 하나의 파일을 수정한 후, master로 병합해 보겠습니다. 



텍스트 파일을 열어 내용을 추가하고 commit를 합니다. 




그 후 아래 화면처럼 push를 해줍니다.



그럼 자신의 branch와 origin까지 업데이트 되었다는 표시를 볼 수 있습니다.




 위 화면의 좌측 브랜치 트리에서 master와 sampleBranch를 선택하면, 선택된 브랜치의 글씨가 볼드체로 바뀌며 현재 작업 폴더의 브랜치가 지정됩니다. 

 master를 선택 후 "second document.txt"파일을 열어보면 좀 전에 추가했던 텍스트가 보이지 않는 것을 확인할 수 있습니다. 


이제 master로 sampleBranch의 내용을병합해 보겠습니다. master를 선택 후, sampleBranch에서 메뉴를 열면 아래와 같은 메뉴 리스트가 나옵니다. "현재 브랜치(master)로 sampleBranch 병합"을 선택하면 sampleBranch의 내용이 master로 병합됩니다.



다시 "second document.txt" 파일을 열어보면 파일이 정상적으로 병합된 것을 확인할 수 있습니다.


다음 아티클에서는 충돌 시 어떻게 처리해야 할 지 살펴보겠습니다.

저작자 표시 비영리 동일 조건 변경 허락
신고
2016.12.27 19:03

이번에는 저장소에 파일을 올려보겠습니다. 


해당 프로젝트 폴더에 새로운 파일을 생성해 보겠습니다. 임시로 이름은 "new document.txt"로 하겠습니다. 


"Stage All" 혹은 "Stage Selected"를 선택하고, 로그를 입력하여 커밋을 하며, 로컬 저장소에 업데이트 됩니다. 


커밋이 완료되면 아래와 같이 히스토리가 처음으로 생성된 것을 확인할 수 있습니다. 하지만 아직은 로컬 저장소에만 기록된 상태이며, bitbucket 원격 저장소로는 업데이트가 되지 않은 상황입니다. 



원격 저장소로 업데이트하기 위해서는 상단 메뉴 중 "푸시"를 눌러 진행할 수 있습니다. 푸시를 누르면 아래와 같은 창이 뜨며, 어떤 브랜치의 변경 사항을 Push할지 선택할 수 있습니다. 지금은 master 앞의 체크 버튼을 누른 후 하단의 "푸시" 버튼을 누르시면 서버로 업데이트를 진행합니다.



업데이트가 완료되면 기존 "master" 표기만 있었는데, 앞쪽으로 "origin/master"가 추가된 것을 확인할 수 있습니다. 



이제 bitbucket.org의 저장소 화면으로 가면 웹에서도 확인할 수 있게 됩니다.



다시 파일을 수정하여 커밋/푸시를 진행하면 아래와 같이 추가 변경된 내용을 볼 수 있습니다. 



그럼 어떤 파일을 특정 시점의 버전으로 롤백하는 과정을 살펴 보겠습니다. 


원하는 브랜치에서 해당 버전을 클릭하면 하단에 해당 버전에서 수정된 파일 리스트가 나옵니다. 


이때, 우측으로 가면 "..."으로 되어 있는 누르면 파일 되돌리기 버튼이 나오는걸 볼 수 있습니다. 


그걸 누르면 지정한 파일이 원하는 버전으로 수정됩니다.




이후 커밋/푸쉬하면 수정된 내용이 최종적으로 업데이트 됩니다. 


다음에는 브랜치를 관리하는 방법을 알아보겠습니다. 

저작자 표시 비영리 동일 조건 변경 허락
신고
2016.12.26 14:04

Unity는 작업자 로컬에서 관리되는 파일들이 유독 많습니다. 


이런 파일들이 공유되기 시작하면 프로젝트가 꼬이는 건 시간 문제죠. 


이를 위해 Unity 프로젝트에서 공유되면 안되는 파일/폴더 리스트와 git 저장소에서 이런 파일들이 공유되지 않게 하는 gitignore 파일에 적용하는 방법을 알아보겠습니다. 


주의하실 점은 프로젝트에 이미 공유되기 시작하면 이 파일에 적용된 내용이 적용되지 않을 수 있으니, 가능하면 저장소 생성 후 바로 설정을 해두시길 권장합니다. 


bitbucket.org에서 저장소 페이지로 이동하시면 아래와 같은 화면을 볼 수 있습니다. 



"Create a .gitignore"를 선택하면 해당 저장소에 적용할 gitignore 파일을 생성, 편집할 수 있습니다. 


Unity 프로젝트의 최상위 폴더들 중 Assets 폴더만 공유해도 되고, ProjectSettings 까지 같이 공유해도 됩니다. 


.gitignore에는 아래 내용을 넣어서 사용하시면 됩니다. 추가가 필요한 내용은 아래 포멧을 참고하여 추가하시면 됩니다. 




############################## # Unity folders & files **/Library/ **/obj/ **/Temp/

############################## # Source Files

*.psd
*.max

############################## # Package files *.7z *.gz *.rar *.tar *.zip ###################### # Logs and databases *.log .DS_Store* Thumbs.db



파일은 일반적으로 *.exe 등으로 등록하면 exe 확장자를 가진 파일을 stage에 등록되지 않도록 합니다. 


특정 폴더는 /Temp/ 로, 특정 폴더의 하위 폴더를 모두 포함시키지 않을 경우 **/Temp/로 등록하시면 됩니다.



파일을 공유할 때 10M 이상의 파일을 공유하지 않도록 하세요. 버전 관리에 많은 부담이 됩니다. sourcetree에서도 10M이상의 파일을 commit할 때는 경고를 출력합니다. 


git은 svn, cvs에 비해 branch가 상당히 가볍게 관리됩니다. 


저도 이전 프로젝트에서 svn의 branch는 너무 무거워서 거의 사용하지 않다가 git에서는 필수적으로 사용하기 시작했습니다. 


다음 글에서는 이에 대한 내용을 살펴보겠습니다. 

저작자 표시 비영리 동일 조건 변경 허락
신고