문제와 목표
submodule 불일치에서 바꿀 결과와 유지할 기존 동작을 한 문장씩 적습니다. superproject는 submodule repository의 특정 commit을 기록하므로 clone 뒤 init·update가 없거나 commit 접근 권한이 없으면 기대한 source가 없습니다.
원인에 맞는 준비
working tree, index와 commit graph 중 어디가 예상과 다른지 먼저 나눕니다. 명령을 실행하기 전 현재 branch·HEAD와 변경 파일을 확인해야 복구 기준을 잃지 않습니다. 현재 version의 공식 문서와 실제 설정을 확인하고 대표·경계·실패 사례를 준비합니다. status, diff, log --graph, reflog와 각 ref가 가리키는 commit을 먼저 확인한다.
| 순서 | 할 일 |
|---|---|
| 1 | 수정 전 결과와 되돌릴 기준 저장 |
| 2 | 핵심 사실과 맞닿은 한 곳만 변경 |
| 3 | 같은 입력으로 수정 전후 비교 |
해결 순서와 완료 조건
공유된 commit과 로컬 변경을 구분하고, 되돌릴 ref를 확보한 뒤 목적에 맞는 가장 작은 Git 명령을 사용합니다. 공유 이력과 로컬 이력을 구분하고 복구 가능한 ref를 만든 뒤 최소 범위의 비파괴 명령을 선택한다. 예상과 다르면 변경을 더 얹지 말고 처음 달라진 값으로 돌아갑니다. 작업 트리, index, commit graph와 remote 차이를 다시 확인하고 필요한 빌드·테스트를 수행한다. git status, 필요한 git diff와 commit graph를 다시 확인하고 새 clone이나 별도 worktree에서도 기대한 history와 파일이 재현되는지 검사합니다.
공식 문서와 적용 범위
문서의 기본값과 동작은 version에 따라 달라질 수 있습니다. 현재 도구 version, repository 상태, 보호 규칙과 협업 절차에서 다시 확인합니다.