Git 프로젝트에서 서브모듈의 원격 저장소 URL을 변경하거나 서브모듈명을 수정한 후 발생하는 문제를 해결하고, 다시 발생할 수도 있어 해결 방법에 대해 정리하려고 한다.
fatal: No url found for submodule path 'oz_python_assignment' in .gitmodules
fatal: no submodule mapping found in .gitmodules for path 'oz_python_assignment'
fatal: 'oz_python' already exists and is not a valid git repo
처음엔 당황했다... ㅡ.ㅡ, 차근차근 문제를 해결해 나아갔고, 다시 발생할 수도 있어 해결 방법을 정리하려 한다.
vim .gitmodules
2) 이후 파일 내용을 아래와 같이 수정한다:[submodule "oz_python"]
path = oz_python
url = https://github.com/socical-dev/oz_python.git
3) 변경 내용을 저장하려면 ESC 키를 누른 후 :wq를 입력하고 Enter를 눌러 종료한다.서브모듈이 제대로 반영되었는지 확인하려면 .git/config 파일을 열어야 한다.
1) 파일을 열기 위해 다음 명령어를 실행해야 한다:
vim .git/config
2) 이후 서브모듈 항목이 아래와 같이 되어 있는지 확인하고 수정한다:
[submodule "oz_python"]
url = https://github.com/socical-dev/oz_python.git
active = true
기존 서브모듈을 삭제하고 새로 등록할 수 있다.
git submodule deinit -f oz_python_assignment
rm -rf .git/modules/oz_python_assignment
git rm -f oz_python_assignment
git submodule add https://github.com/socical-dev/oz_python.git oz_python
git submodule update --init --recursive
git submodule sync
git submodule update --init --recursive
git remote -v
git submodule status
서브모듈을 삭제 후 다시 클론 받을 경우, 다음 명령어를 실행한다.
git submodule update --init --recursive
서브모듈의 변경 사항을 커밋 후 푸시하는 것을 잊으면 안된다.
git add .gitmodules .git/config
git commit -m "Update submodule path"
git push origin main
이 정리를 활용해 서브모듈 관련 문제를 원활히 해결 수 있었다!!!
이제는,,, 이슈가 발생하지 않기를,,,ㅠㅠ