본문 바로가기

에러핸들링

(에러핸들링) 하위 디렉토리에 소속된 local repository에 git remote설정할 경우 상위 디렉토리에 git remote 설정이 같이 되는 경우의 처리

● 문제 상황

github page 배포 테스트를 위해 local repository를 생성하였다. local repository는 상위 디렉토리에 소속되어 있다.

local repository에 git remote 설정을 해주면 그 local repo가 소속된 디렉토리의 상위 디렉토리에도 동일한 git remote가 설정되는 문제가 발생하였다. 상위 디렉토리에 git remote remove 명령을 주어서 git remote 설정을 없앤 후에 하위 디렉토리를 원격 저장소와 연결하게 되면 상위 디렉토리까지 git remote 가 설정되는 현상이 반복되고 있었다.

상위 디렉토리 git status로 git 현황을 조회하니 폴더 안에 있는 모든 요소가 git의 추적을 당하고 있었다.

● 해결 방법

git clean, git remote remove, git init, git rm --cached 등 다양한 명령어를 통해서 위의 문제를 해결하려고 하였지만 

하위 디렉토리를 원격 저장소와 연결할 때마다 상위 디렉토리가 동일한 원격 저장소와 git remote 되는 현상이 발생했다.

 

해결방법은 상위 디렉토리의 git init을 취소시켰다. 상위 디렉토리(위의 이미지에서는 holystorySeo 이다)에서 실수로 git init 명령어를 통해 git의 로컬 저장소로 지정하였던 것으로 추측이 된다. 자세히 파일들을 살펴보니 holystorySeo 폴더 안에 .gitignore, README.md 파일 등 git push와 관련된 파일들이 보인다.

 

  • 명령어 rm -r .git을 입력하여 .git 폴더가 삭제하고 Git 로컬 저장소 지정을 해제시켰다.

override는 작동, 작업을 중지시킨다는 의미이다. (자바의 오버라이딩과는 다른 의미이다.)

이와 같이 .git 안에서 로컬 저장소로 지정되었던 객체들을 모두 삭제해 주었다.

git status로 현황을 조회하니 git repo가 아니라고 한다. 그렇다면 의심이 되는 부분이

상위 디렉토리안에 있는 또 다른 하위 디렉토리의 git remote 는 지속되어 있는지 궁금하다.

그래서 조회해 보니 다행히 하위 디렉토리의 git remote는 전혀 영향을 받지 않았다.

 

상위 디렉토리의 .git을 모두 삭제해주고

하위 디렉토리를 하나 생성해주고 원격 저장소와 연결하니 더 이상 상위 디렉토리에도

동일한 git remote가 설정되는 현상이 사라졌다.

 

"여러분도 혹시라도 하위디렉토리의 git remote를 설정해주고

파일 수정 후 git status를 살펴보았더니 수정한 파일외에 

다른 디렉토리(특히 상위 디렉토리)의 수정 요소가 git status를 통해 추적이 되는 거 같으면

상위 디렉토리에 git init이 되어있는지 확인 후에

git init을 취소해 주어 문제를 해결하면 된다.