
Unity × git worktree: AI 병렬 개발 시 각 worktree를 즉시 디버깅하는 방법【macOS】
요약
git worktree를 활용하여 Unity 개발 시 AI 병렬 개발 환경을 구축하고, 생성된 각 worktree를 Unity Hub에 매번 등록하지 않고 즉시 실행하는 방법을 소개합니다. OpenUnity.command 스크립트를 통해 프로젝트 경로와 버전을 자동으로 인식하여 에디터를 실행하는 워크플로우를 제안합니다.
핵심 포인트
- git worktree를 이용해 여러 브랜치에서 AI 병렬 개발 가능
- OpenUnity.command 스크립트로 Unity Hub 등록 절차 생략
- 스크립트를 Git으로 관리하여 신규 worktree에 자동 적용
- macOS 환경에서 Unity 에디터를 즉시 실행하는 자동화 팁
Unity에서 게임 개발을 할 때, 지금까지는 하나의 브랜치(branch)에서 AI를 구동하고 작업이 끝날 때까지 기다리는 방식으로 진행해 왔습니다. 하지만 이 방식은 대기 시간이 발생하여 손이 노는 경우가 많았습니다.
그래서 여러 브랜치에서 여러 AI를 동시에 구동하여 개발 속도를 폭발적으로 높이고 싶어 조사해 본 결과, git worktree라는 기능을 발견했습니다!
실제로 git worktree를 사용하여 AI에게 병렬 개발을 시켜보았는데, 생성한 worktree를 동작 확인할 때마다 Unity Hub에 프로젝트로 추가하여 열고 있었습니다…….
따라서 이 기사에서는 worktree를 매번 Unity Hub에 추가하지 않고도, 각 worktree의 Unity 프로젝트를 직접 여는 방법에 대해 정리합니다!
이 기사에서는 git worktree로 생성한 작업 디렉토리 내의 Unity 프로젝트를 Unity Hub의 프로젝트 목록에 매번 추가하지 않고, 직접 Unity Editor(Unity 에디터)로 여는 방법을 소개합니다.
프로젝트 내에 OpenUnity.command라는 파일을 배치하여, 실행한 worktree의 경로와 해당 프로젝트가 사용 중인 Unity 버전을 자동으로 취득합니다.
OpenUnity.command를 Git으로 관리해 두면, 새로 생성한 worktree에도 자동으로 포함되므로 worktree를 생성하자마자 바로 동작 확인을 할 수 있습니다.
- macOS Tahoe 26.5.1
- Unity 6
- GitHub Desktop
- Shell: zsh
각 worktree에 포함된 OpenUnity.command를 실행하면, 해당 worktree의 Unity 프로젝트가 직접 Unity Editor에서 열립니다.
worktree를 생성
↓
각 worktree에서 AI에게 구현하게 함
...
완성 후의 디렉토리 구성은 다음과 같습니다.
TetrisGame/
├── Assets/
├── Packages/
...
먼저, Terminal(터미널)에서 자신의 Unity 프로젝트로 이동합니다.
cd ~/Desktop/TetrisGame
경로는 자신의 Unity 프로젝트에 맞춰 변경해 주세요.
이어서, 다음 코드를 처음부터 끝까지 줄바꿈을 유지한 채 Terminal에 붙여넣습니다.
mkdir -p Tools
cat > Tools/OpenUnity.command <<'EOF'
#!/bin/zsh
...
마지막의 EOF는 반드시 행의 맨 앞에 단독으로 두어야 합니다. 코드 전체를 한 줄로 만들어 실행하면 정상적으로 파일을 생성할 수 없습니다.
이 명령에서는 다음 처리를 한꺼번에 수행하고 있습니다.
Tools 폴더를 생성
↓
OpenUnity.command를 생성
...
이미 .gitattributes가 존재하는 경우에도 파일 전체를 덮어쓰지 않고 필요한 설정만 추가합니다. 동일한 설정이 이미 존재하는 경우에는 중복해서 추가되지 않습니다.
생성한 OpenUnity.command와 .gitattributes는 Git으로 관리하며, main 브랜치 또는 master 브랜치에 넣어둡니다.
OpenUnity.command를 기준이 되는 브랜치에 넣어둠으로써, 그곳에서 새로 생성한 worktree에도 자동으로 포함되도록 합니다.
⚠️ 이미 생성된 worktree에는 자동으로 추가되지 않으므로, main의 변경 사항을 가져오거나 worktree를 다시 만들어야 합니다.
OpenUnity.command를 main에 머지(merge)한 후, GitHub Desktop에서 로컬의 main을 최신 상태로 만듭니다.
그 후, GitHub Desktop의 메뉴 바에서 다음 순서로 조작합니다.
Repository
↓
New Worktree...
...
예를 들어, 다음과 같이 기능별로 worktree를 생성합니다.
TetrisGame-main
TetrisGame-player
TetrisGame-enemy
...
생성한 각 worktree에서 본인이 작업하거나 AI에게 구현하게 합니다.
AI를 병렬로 구동하는 경우에는 worktree마다 별도의 AI 세션을 열어 각각 서로 다른 기능을 담당하게 합니다.
구현한 기능을 Unity Editor에서 확인하는 경우에는 대상 worktree 내의 Tools/OpenUnity.command
를 더블 클릭합니다.
Terminal (터미널)에서 실행하는 경우에는, 대상 worktree로 이동한 후에 실행합니다.
cd ~/Desktop/TetrisGame-worktrees/feature-player
./Tools/OpenUnity.command
worktree마다 Library (라이브러리)가 생성됩니다.
각 worktree는 서로 다른 경로에 있는 Unity 프로젝트로 열리기 때문에, 각각에 Library 폴더가 생성됩니다.
최초 실행 시에는 Import (임포트)가 발생하며, worktree의 수에 따라 SSD 용량도 사용하게 됩니다.
git worktree를 사용하면 기능이나 Issue (이슈)별로 브랜치와 작업 폴더를 나누어, 여러 AI에게 병렬로 구현을 맡길 수 있습니다. 반면, Unity 프로젝트를 worktree마다 Unity Hub에 추가하는 운영 방식은 worktree를 빈번하게 생성하거나 삭제할 경우 번거로움이 따릅니다.
OpenUnity.command를 도입하면, 명령만으로 대상 worktree를 Unity Editor에서 직접 열 수 있게 됩니다!
스크립트를 Git으로 관리하여 main 브랜치에 넣어두면, 새로 생성한 worktree에도 자동으로 포함됩니다. 따라서 worktree를 생성한 직후부터 Unity Hub에 추가하지 않고도 동작 확인을 시작할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기