#git#obsidian#workflow#conflict
Obsidian Git 자동 커밋과 Claude Code가 동시에 push하면 생기는 충돌 해결
두 곳에서 같은 브랜치에 push하면 반드시 충돌난다. 역할을 분리해야 한다.
상황
Obsidian Git 플러그인을 10분마다 자동 커밋+push로 설정해놨다.
그런데 Claude Code(애기)가 포스트 파일을 직접 content 서브모듈에 커밋하고 push하려 하자 아래 에러가 떴다.
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'https://github.com/...'
hint: Updates were rejected because the remote contains work that you do not have locally.
Obsidian Git이 먼저 자동으로 push한 상태에서, 로컬이 그 변경사항을 모른 채 또 push하려다 충돌난 것.
원인
content 서브모듈(dechive-content 레포)에 두 곳에서 동시에 push를 시도했다.
- Obsidian Git: 10분마다 자동으로 커밋+push
- Claude Code(애기): 포스트 작성 후 직접 커밋+push
같은 브랜치에 두 곳에서 push하면 나중에 push한 쪽이 반드시 rejected된다. Git의 기본 원칙이다.
해결
그 자리에서는 git pull --rebase && git push로 해결했다.
git pull --rebase
git push
rebase로 remote 변경사항을 먼저 당겨온 뒤 로컬 커밋을 그 위에 올리는 방식.
앞으로의 워크플로우 (재발 방지)
| 파일 종류 | 담당 | 경로 |
|---|---|---|
| 포스트 .md | Obsidian에서만 작성 | content/posts/ |
| 썸네일 이미지 | 오라버니가 직접 | public/images/posts/ |
| 코드/설정 | Claude Code(애기) | dechive 메인 repo |
핵심 규칙: 애기는 content 서브모듈에 직접 손대지 않는다.
포스트 파일은 Obsidian → 자동 push → sync 워크플로우로만 올라간다. 애기가 직접 올리면 반드시 충돌난다. 오늘 확인했다.
