위키 목차

가이드 기준: 데모 0.6.0 · 2026-09-22 검토

Git 팀 제작

제작기의 병합과 충돌 화면에서 복제, 브랜치 목록, Fetch, 기존 브랜치 전환, 병합, 충돌 해결과 LFS 상태를 사용합니다. 기존 서비스 화면의 명시적인 Stage / Commit / Push와 함께 사용합니다.

  1. HTTPS/SSH URL 또는 기존 로컬 저장소 경로와 빈 복제 대상 폴더를 입력합니다. 복제 후 프로젝트 열기로 해당 폴더를 엽니다. 인증은 설치된 Git의 자격 증명 연동을 사용합니다.
  2. 편집 내용을 저장하고 변경을 검토한 후 커밋합니다. 미커밋·미추적 파일이 있으면 전환과 병합이 차단됩니다. 자동 stash, 강제 전환, 자동 push는 하지 않습니다.
  3. Fetch 후 브랜치·충돌 새로고침으로 로컬/원격 브랜치를 확인합니다. 로컬 브랜치 또는 origin 브랜치로 전환할 수 있습니다.
  4. 병합은 fast-forward가 가능하면 해당 커밋으로 이동합니다. 갈라진 이력의 병합은 --no-commit으로 멈춥니다. 충돌 유무와 관계없이 별도 검사와 명시적 커밋이 필요합니다.
  5. 충돌 파일을 선택하면 공통 원본·내 변경·팀 변경을 확인할 수 있습니다. JSON은 직접 수정하거나 한쪽을 선택할 수 있으며 유효한 JSON만 저장됩니다. 한쪽에서 삭제된 파일은 삭제 또는 남은 버전 복원을 명시적으로 선택합니다. 바이너리는 크기와 blob ID를 표시하고 한쪽 버전을 선택합니다. 저장 전 선택한 파일/해결 방식 확인을 받고 스테이징합니다.
  6. 프로젝트를 다시 불러와 참조와 게임 규칙을 검사한 뒤 커밋하고 공유합니다. Git 병합 성공만으로 게임 유효성을 보장하지 않습니다.

진행 중인 충돌 정보는 Git index의 1/2/3 단계에서 읽으므로 앱 재시작 뒤에도 복원됩니다. 오래된 화면의 충돌 단계가 변경되었으면 해결 저장을 거부합니다. 편집기 저장과 Git 변경 작업은 저장소 경로별 뮤텍스를 공유합니다. 외부 Git 프로세스는 이 뮤텍스를 사용하지 않으므로 외부 도구 실행 중 동시 편집은 피해야 합니다.

병합 취소 및 편집 백업은 취소 직전 HEAD와 다른 모든 추적 파일 및 미추적 파일의 내용을 .git/narrafield-recovery/<UTC 시각>/files/에 먼저 복사합니다. 삭제 상태는 manifest.json에 기록합니다. 백업 성공 후 git merge --abort를 실행하며, 실패하면 백업 위치와 오류를 표시합니다. 백업 복원은 명시적으로 파일을 검토해 수행하며 자동 덮어쓰기는 없습니다. 앱은 병합 시작 전에 깨끗한 상태를 요구하므로 병합 이전 변경을 자동 폐기하지 않습니다. 심볼릭 링크·서브모듈 충돌은 앱 해결 대상에서 제외합니다.

Git은 셸 문자열 없이 인자를 직접 전달합니다. Hook 실행은 명령별로 비활성화하고, 사용자 정의 merge driver와 콘텐츠 filter는 차단합니다. 표준 git-lfs filter 명령만 허용합니다. 전역 Git 설정이나 기존 hook 파일을 수정하지 않습니다. 네트워크 명령 결과와 실패 stderr에는 인증 정보가 포함될 수 있어 앱에 원문 출력하지 않습니다. 인증 대기는 비활성화하고 명령에 30초 제한을 적용합니다.

LFS 화면은 설치된 Git LFS의 버전과 git lfs status를 보여줍니다. 미설치 시 사용 불가를 명시하며 설치했다고 표시하지 않습니다. LFS 파일이 추적되어 있으면 Push는 일반 Git push 전에 표준 git lfs push origin HEAD를 명시 실행합니다. Hook 비활성화로 LFS 업로드가 누락되는 것을 막기 위한 단계입니다. 표준 clone의 LFS 수신 결과는 원격/자격 증명/설치 상태에 달려 있습니다. 원격 LFS 제공 여부, 누락 에셋의 프로젝트 배포 차단, LFS 잠금 UI 및 실제 2개 PC의 인증·LFS 수신은 별도 검증 대상입니다.

자동화 검증은 실제 임시 bare 원격과 두 로컬 clone으로 한글·공백 경로, Fetch, 양쪽 JSON 변경, 3-way 읽기, 수동 해결·명시 커밋·공유, 충돌 해결 후 취소 백업, 미커밋 변경 보호, 경로/옵션 주입 거부, 자격 증명 출력 억제 및 저장소별 잠금 공유를 확인합니다.

앞으로의 작업 위치

최신 기획에서는 GitHub 연결·브랜치·커밋·병합을 프로젝트 설정 → 버전 관리로 모읍니다. 새 제작 작업 공간의 화면은 목표 시안이며, 현재 데모에서는 이 문서의 병합과 충돌 / 협업과 확장 메뉴를 사용합니다.

← 위키 전체 목차Narrafield 소개 →