Environment Setup

2026 Git 작업 트리를 사용하여 클라우드 Mac에서 HTML/CSS 분기를 병렬로 유지 관리

MacHTML Lab2026.03.27 읽는 데 약 11분 소요

정적 사이트나 구성 요소 라이브러리가 온라인 상태가 되기 전에 동시에 수정해야 하는 경우가 많습니다.두 개의 비상 지점: 하나는 제작환경 CSS를 수정하는 것이고, 다른 하나는 다음주에 랜딩페이지를 만드는 것입니다. 다른 저장소를 복제하는 것은 디스크 공간을 차지하고 시간이 많이 걸립니다.Git worktree동일한 개체 라이브러리에서 여러 분기를 병렬로 확인할 수 있습니다. 특히 "두 번째 컴퓨터"를 SSH가 가능한 컴퓨터로 교체하는 데 적합합니다.클라우드 맥 미니, Safari를 실행하고 그 위에 구축하는 반면, 노트북은 코드 작성을 위한 마스터 복제본만 유지합니다.

HTML/CSS 팀이 작업트리를 사용하는 이유

기존 프로세스 - 보관, 결제, 가져오기, 다시 실행npm install——종종 단지 변화를 위해서12줄 이상의 영웅 영역 CSS, 컨텍스트가 완전히 손실됩니다. Worktree를 사용하면 각 분기가 별도의 디렉터리에 유지되고 기록이 계속 공유되므로 디렉터리 A는 항상 열려 있을 수 있습니다.npm run dev, B 디렉토리 병렬npm run build, 가지를 앞뒤로자를 필요가 없습니다.

Apple Silicon에서는 종속성 설치에 여전히 시간이 많이 걸립니다. Git 개체가 공유되더라도 각 작업 트리는node_modules"Vite + Tailwind"등의 스택도 자주 차지합니다.250–400 MB. 3개의 활성 트리를 계획한다는 것은 단지 의존하는 것만으로도 근사치가 가능하다는 것을 의미합니다.1.2 GB, 내장 제품인 Cloud Mac과 결합하면 디스크가 충분할 때는 쉽지만 256GB 노트북에 사진과 Docker 이미지를 설치해야 하는 경우에는 부족할 것입니다.

디자인 초안과 DOM을 동시에 비교해야 하는 프런트 엔드의 경우 작업 트리는 "핫 ​​복구 분기" 및 "기능 분기"가 각각 로컬 URL 세트를 사용하도록 허용하여 실수로 병합되지 않은 스타일을 잘못된 분기에 제출할 가능성을 줄일 수 있습니다. 검토하는 동안 체크아웃을 반복적으로 전환하지 않고도 디자이너에게 두 디렉터리의 차이점을 나란히 보여줄 수도 있습니다.

일일 필수 명령

기본 저장소 경로 아래에 형제 디렉터리에 대한 체크아웃을 추가합니다.

git fetch origin
git worktree add ../site-hotfix origin/hotfix/css-hero
git worktree list

병합이 완료된 후 해당 디렉터리를 제거합니다.

git worktree remove ../site-hotfix

제출되지 않은 변경 사항이 있다는 메시지가 나타나면 먼저 제출하거나 계속하기 전에 쓸모 없는지 확인하세요.--force. 손이 미끄러운 경우rm -rf디렉토리를 삭제한 후 사용하세요.git worktree prune방지하려면 메타데이터를 정리하세요.git worktree list유령 항목이 나타납니다.

작업 트리, 전체 복제 및 독립 창고

방법힘내 객체 직업복잡성해당되는
두 번째 완전한 클론.git 중복낮은기계를 물리적으로 격리
worktree공유 개체 라이브러리가운데원격 및 여러 지점과 병렬
독립창고(포크)독립 역사높은공급업체 코드가 원격 주 창고와 일치하지 않습니다.

개발 서버, 포트 및 Safari 태그

각 작업 트리는 독립적인 루트 디렉터리이며 하나의 디렉터리에서 실행될 수 있습니다.npx vite --port 5173,또 다른--port 5174. README 또는 팀 문서에 명확하게 작성하십시오.핫픽스 → 5173, 카드 기능 → 5174. Safari 고정 탭은 원격 세션에서 잃어버리기 쉽습니다. 두 URL을 북마크로 저장하거나 서비스 시작 후 링크를 ​​에코하는 작은 스크립트를 작성할 수 있습니다.

SSH를 사용하여 명령을 실행하고 가끔씩 VNC를 사용하여 픽셀을 보는 경우 다음을 참조하세요.Cloud Mac의 SSH와 VNC 비교, 긴 작업을 SSH 세션에 넣은 다음 두 분기의 Safari 성능을 나란히 비교해야 할 때 그래프를 엽니다.

이전 프로세스를 닫는 것을 잊었을 때 포트 충돌이 흔히 발생합니다.lsof -i :5173점유자를 찾아 종료하면 맹목적으로 포트를 변경하는 대신 CI와 로컬 문서 간의 불일치를 피할 수 있습니다.

디렉터리를 삭제하기 전 정리 체크리스트

  1. Git 호스팅 플랫폼에서 브랜치가 병합되거나 삭제되었는지 확인하세요.
  2. 감시 프로세스를 중지합니다(Ctrl+C) 파일 핸들이 해제되는 것을 방지합니다.
  3. 우선 사항git worktree remove <path>, 매뉴얼 사용을 줄이세요rm -rf
  4. 수동으로 삭제한 경우 남은 파일이 있는지 확인하세요.dist/.vite은닉처.
  5. 실험적인 설치가 너무 많을 때 실행할 수 있습니다.npm cache verify공간을 회수합니다.

세 번째 단계를 건너뛰면 쉽게 다음과 같은 문제가 발생할 수 있습니다.git worktree list실제 디렉토리와 일치하지 않습니다. 자동화된 스크립트에 다음이 포함된 경우30초시간이 초과되면 트리 탐색이 실패하게 됩니다. 메타데이터는 인간과 마찬가지로 정기적으로 정리되어야 합니다.

Prettier, ESLint 및 Stylelint의 캐시는 항상 자체 캐시에 있습니다.node_modules/.cache; 캐시 디렉터리 하드 링크가 공유되는 경우 한 분기에서 플러그인 주요 버전을 업그레이드한 후 다른 분기의 형식 지정 결과가 오염될 수 있습니다. 디스크 모니터가 1위가 될 때까지 중복 캐싱을 허용하는 것이 더 안전합니다.85 %통합 캐싱 전략에 대해 다시 논의해 보겠습니다.

주요 버전 출시일에 각 트리에 대해 정적 내보내기(Eleventy, Astro 정적 모드)를 사용할 수 있습니다.주문하다구현하다npm run build: 네 그루의 나무가 각각 꽃을 피우면여덟작업자 병렬 처리를 사용하면 M4 Pro의 CPU가 가득 찰 수 있습니다. 노드 시작 매개변수에 추가할 수 있습니다.--max-old-space-size=4096, Console.app에 메모리 압력 로그가 나타나는지 확인하세요.

임대한 Mac에서 Worktree를 실행하는 이유는 무엇입니까?

컴퓨터실에서는Apple Silicon Mac mini공유 빌드 캐비닛과 마찬가지로 모든 사람이 분기를 동일한 시스템에 푸시합니다./Users/ci/sites/표준 경로를 클릭하세요.git worktree add, 검토 후 삭제하세요. 노트북은 마스터 클론 쓰기 논리를 유지합니다. 대용량 병렬 설치는 시간별로 요금이 청구되는 클라우드에 배치되므로 디스크 및 전기 요금에 대한 부담이 줄어듭니다.

SSH 키와 구성이 아직 정리되지 않은 경우 먼저 읽어보세요.원격 Mac 구성 가이드, 작업 트리를 자동으로 추가하는 스크립트를 작성하십시오. 화려한 디렉토리 이름 지정보다 안정적인 인증이 더 중요합니다.

성숙한 팀은git worktree addMakefile에 포함되거나30줄 이내껍질: 그런데npm ci개발자 URL을 인쇄하세요. 경로는 다음과 같이 통합될 수 있습니다./var/tmp/worktrees/$BRANCH_SLUG, 슬러그는 다음과 같이 잘립니다.48자, 깊은 임시 파일을 작성할 때 Webpack이 macOS 경로 길이 제한에 도달하는 것을 방지합니다.

하위 모듈과 작업 트리에 주의하세요. 각 트리는git submodule update --init. Git LFS 리소스 저장소를 사용할 때 트리별로 실행해야 한다는 점을 기억하세요.git lfs pull그렇지 않으면 "CSS가 성공적으로 빌드되었지만 Safari에서 Hero Video 404"와 같은 이상한 문제가 발생합니다.

CI가 미리보기 링크를 보낼 때 Slack에 작업 트리 경로도 표시합니다(예:hotfix → ~/wt/hero), 검토자는 SSH 접속 시 잘못된 디렉토리를 찾지 못할 것입니다.삼분컨텍스트 전환, 4명이 한 번 검토하면 많은 임대 시간 비용을 상쇄할 수 있습니다.

다른 것과 짝을 이룰 수 있습니다worktree-health.sh, 남은 출력 디스크, 활성node프로세스 및 각 개발 서버의 최종 로그다섯 가지 요소, cron 또는 LaunchAgent를 사용하십시오.15분한 번 실행하십시오. 고아 웹팩이 없는지 다시 확인하세요.git worktree remove --force, 아직 작성 중인 프로세스가 실수로 종료되는 것을 방지합니다.

공유 호스트의 각 작업 트리는 동일한 자격 증명 도우미 세트를 상속합니다. 아웃소서가 셸에 로그인한 경우 병합 후 배포 키를 순환해야 합니다. 각 나무.env.local제안chmod 600, 키를 여러 분기 디렉터리에 복사하지 마세요. 병합되지 않은 핫픽스 트리는 삭제될 때까지 항상 읽을 수 있습니다.

주요 개정 이전에 사용 가능tmutil localsnapshot로컬 스냅샷을 찍거나 제공하세요.dist/CSS 제거 스크립트가 실수로 모든 활성 트리를 손상시켰을 때 롤백할 곳이 없는 것을 방지하기 위해 타르볼을 만드십시오.

FAQ

Mac에 몇 개의 작업 트리를 보관하는 것이 권장됩니까?

대부분의 팀은 256GB 디스크에 3~6개의 활성 작업 트리를 유지합니다. 각 작업 트리에는 여전히 독립적인 작업 공간과 node_modules가 있습니다. 종속성을 공유하기 위해 고급 도구를 사용하지 않는 한, df -h를 사용하여 매주 공간을 관찰하는 것이 좋습니다.

작업 트리가 Git 개체를 공유합니까?

회의. 동일한 웨어하우스에 있는 여러 작업 트리는 .git 개체 라이브러리를 공유합니다. 이는 반복되는 git 복제보다 공간을 더 절약해 줍니다. 그러나 node_modules는 자동으로 공유되지 않습니다.

동시에 두 개의 Vite를 실행할 수 있나요?

예, --port 5173 및 --port 5174와 같이 각 디렉터리에 대한 포트를 명시적으로 지정하고 팀 문서에 매핑을 문서화하세요. Safari는 시각적 비교를 위해 동시에 두 개의 로컬 호스트를 열 수 있습니다.

Git 작업 트리는 명확한 분기 이름 지정을 대체할 수 없지만 "반복 체크아웃"의 마찰을 제거할 수 있습니다. 항상 열려 있고 환경이 생산에 가까운 기계와 비교할 수 있습니다.Mac mini함께 사용하면 릴리스 주간에 여러 HTML/CSS 레인을 병렬로 실행하는 데 특히 유용합니다. 매일 클라우드 컴퓨팅 성능을 임대하고, 피크 시간대에 트리를 몇 개 더 추가하고, 출시 후 작업 트리를 삭제하고, 비용을 줄이는 것이 피크 시간대에 별도의 시스템을 구입하는 것보다 더 유연합니다.

병렬 분기에는 병렬 디스크 공간이 필요합니다.

클라우드 Mac mini를 임대하여 작업 트리, Safari 검토 및 장기 개발 서버를 공유하세요. 먼저 지역을 선택한 후 도움말 센터를 클릭하여 SSH 및 키 구성을 완료하세요.

클라우드 Mac에서 작업 트리 실행
최저 $16.9/일