내 작업 디렉토리를 맥/윈도우PC/리눅스서버 3대에서 오가며 쓰는데, Claude Code 세션을 켜면 자동으로 최신본을 pull 하고, 세션을 끝내면 자동으로 commit+push 되게 만들어줘. 그냥 작업만 해도 3대가 물 흐르듯 동기화되는 구조다. 지금 이 디바이스에 셋업해줘.
[준비물]
- GitHub 프라이빗 repo 1개를 허브로 쓴다(예: github.com/<나>/my-sync, 비어 있어도 됨). repo URL은 내가 줄게/없으면 만드는 법 안내해줘.
- (서버 bare repo를 허브로 쓰고 싶으면 origi로 알려줘)
[해줄 것] 1. 현재 OS를 감지해라(맥/윈도우/리눅스). OS .
2. 이 작업 디렉토리를 git repo로 만들고(이미면 재사용) origin을 허브 repo로 설정.
- 윈도우면 `git config core.autocrlf false` (줄바꿈 충돌 방지).
- 시크릿 보호: `.gitignore`에 `.env*`, `*.key`, `*.pem`, `secrets/`, 토큰류 추가. 이미 추적 중인 민감파일 있으면 경고.
3. 동기화 스크립트 작성(맥/리눅스=sync.sh, 윈도우=sync.ps1), 두 모드: - pull: git fetch 후 git pull --rebarged) 감지되면 즉시 중단하고 사람이 풀게둬라 — 충돌 마커를 절대 커밋하지 마.
- `push`: 먼저 `pull --rebase`(non-fast-forward 방지) → 변경 있으면 `git add -A && git commit -m "auto-sync <device> <ISO시각>"` → `git push`. unmerged
- 모든 동작을 로그 파일에 남겨라(`sync.log`).
4. Claude Code hook 배선(~/.claude/settings.json):
- `SessionStart` → 위 스크립트 pull 모드
- `Stop`(세션 종료) → push 모드
- 윈도우는 PowerShell로, 맥/리눅스는 bash로 호출. 기존 hook 있으면 덮지 말고 병합.
5. 충돌 정책 설명: 같은 파일을 두 디바이스에서 동시 수정하면 다음 pull 때 멈춘다 → 그때 한 번 머지하면 됨. 평소엔 무개입.
[검증]
- 셋업 후: 더미 변경 → 세션 종료 시 push 되는지, 다른 디바이스에서 세션 시작 시 pull 되는지 한 사이클 테스트해서 결과 보여줘.
- 마지막에 "다른 디바이스에서도 이 프롬프트를 똑같이 한 번씩 돌리면 끝"이라고 안내.
먼저 (1) 감지한 OS (2) repo URL 확인 (3) 설치할 파일/ hook 목록을 보여주고 내 승인받고 진행해라.
