저장소 복제하기
프로젝트가 외부 저장소에 저장되어 있을 때, 변경 사항을 푸시하고 새로운 변경 사항을 풀하는 것을 기억해야 합니다. 커밋을 할 때, 변경 사항이 로컬에 저장되므로 인터넷 연결 없이 작업할 수 있고, 준비가 되었을 때 동기화할 수 있습니다. 동기화하려면 변경 사항을 원격 저장소에 푸시해야 합니다. 변경 사항을 풀어오는 것은 다른 사람들이 원격 저장소에서 만든 변경 사항을 로컬 저장소로 가져오고 싶다는 의미입니다. 그러나 이는 사람들이 동일한 파일을 편집할 수 있는 경우가 있어 병합 충돌이 발생할 수 있습니다. 이러한 충돌을 처리하는 방법을 알아야 하므로, 지금 의도적으로 충돌을 생성하고 이를 처리하는 방법을 보여드리겠습니다.
참고: 로컬 프로젝트 저장소를 공유하는 것은 권장되지 않습니다. (예: Dropbox와 같은 파일 동기화 서비스를 통해) 커밋은 일반적으로 직접 작성되므로 충돌 방지 기능이 거의 없습니다.
충돌 생성하기
충돌을 생성하기 위해 먼저 두 개의 로컬 저장소가 필요합니다. 하나는 마스터 저장소이고, 다른 하나는 복사본입니다. 이를 생성하기 위해 저장소를 복제해야 합니다. 다음 단계로 진행합니다:
- 소스 제어 > 저장소 복제로 이동합니다.
- URL 필드에 프로젝트 경로를 입력합니다. (기본적으로는
<DRIVE>:\Users\<Username>\GameMakerProjects\<ProjectName>
입니다.) - 복제할 경로를 설정합니다.
"확인" 버튼을 클릭하면 "비어 있지 않은" 저장소를 복제하려고 한다는 경고가 표시됩니다. 여기서 다시 "확인"을 클릭합니다. 이제 "비어 있는" 프록시 저장소를 생성하기 위한 디렉토리 탐색기가 나타납니다. 프록시 저장소를 생성할 위치로 이동하여 사용할 폴더를 선택하거나 생성합니다.
이 작업이 완료되면, GameMaker는 원본 프로젝트를 프록시로 푸시하고, 복제 저장소 창에서 설정한 경로로 새로운 프로젝트를 풀어온 후 자동으로 파일 브라우저를 열어 저장된 프로젝트를 열 수 있게 합니다. 이제 소스 제어 > 히스토리 보기로 이동하면 원본 커밋과 새로운 "복제를 위한 푸시" 커밋을 볼 수 있습니다.
이제 저장소를 복제하였으며, 프로젝트의 로컬 버전에서 계속 작업할 수 있습니다.
활용 예제
예제 1: 로컬 저장소에서 변경 사항 푸시하기
// 변경 사항을 커밋하고 푸시하는 코드
git commit -m "내 변경 사항"
git push origin main
예제 2: 원격 저장소에서 변경 사항 풀어오기
// 원격 저장소에서 변경 사항을 가져오는 코드
git pull origin main
예제 3: 충돌 해결하기
// 충돌이 발생했을 때 해결하는 방법
git merge --abort // 충돌을 중단하고 이전 상태로 돌아가기
예제 4: 충돌 후 파일 수정하기
// 충돌 후 파일을 수정하고 다시 커밋하기
git add .
git commit -m "충돌 해결"
단계 | 설명 |
---|---|
1 | 소스 제어 메뉴에서 저장소 복제 선택 |
2 | URL 필드에 프로젝트 경로 입력 |
3 | 복제할 경로 설정 |
4 | 경고 메시지 확인 후 계속 진행 |
5 | 프록시 저장소 생성 위치 선택 |
6 | 원본 프로젝트 푸시 및 새로운 프로젝트 풀기 |
7 | 히스토리 보기에서 커밋 확인 |