깃으로 TIL을 쓰기 시작한지 4일차.. 또다시 문제가 발생했다..
이런 바보 같은 실수를 변명을 하자면 제정신 아닌 상태로 작성하고 업로드 하느라..
1. 푸시할 파일이 있는 디렉토리(20220423)에서 아무 생각 없이 저장소를 생성하는git init
을 입력했다.
2. 입력한 순간, 이 디렉토리를 Git 로컬 저장소로 설정하면서 브랜치가main
에서master
로 전환됐다. (이때 숨김파일 형식의.git
디렉토리가 만들어진다.)
3. 그러니 당연하게도 푸시가 되지 않았다. (error: src refspec main does not match any
)
4. 푸시가 안 되니 상위 디렉토리로 이동해서 막무가내로 디렉토리째로 푸시해버렸다. 깃이 뭔가를 열심히 하고 평소랑 같은 메시지가 나와서 성공한 줄 알았다..ㅎ
5. 그래서 깃허브 웹사이트에 가서 보니 웬 화살표가 있는 디렉토리가 생성되어 있었다. 얘는 클릭도 안된다..🙄
.git
파일 삭제로컬 저장소로 설정된 디렉토리를 취소(git init
취소)해야 한다. .git
은 숨김폴더이므로 ls -a
를 통해 확인할 수 있다.
나의 경우에는 다음 명령어로도 지워지지 않아서 -r
대신 -rf
를 붙이니 지워지고 브랜치가 master
에서 main
으로 바뀌었다.
$ rm -r .git
그리고 다시 해보면 여전히 안된다!🙃🔫
$ git add README.md
fatal: in unpopulated submodule '2022/202204/20220422'
cache
삭제그래도 이번엔 에러 메시지가 나와서 찾아보니 외부에 .git
이 있는데 내부에 또 .git
이 있으면 서브모듈(submodule)로 인식하고 커밋이 추가가 안된다고 한다.
.git
오류를 일으키는 하위 파일들을 모두 삭제하기 위해 해당 디렉토리에서 다음 명령어를 입력한다.
$ git rm --cached . -rf
그리고 다시 푸시하면 정상적으로 잘 업로드가 된 걸 볼 수 있다!