투케이2K

81. (Git/깃) [에러 관리] fatal 'main' does not appear to be a git repository .. Could not read repository 본문

Git (깃 & 저장소)

81. (Git/깃) [에러 관리] fatal 'main' does not appear to be a git repository .. Could not read repository

투케이2K 2026. 3. 1. 10:31
728x90
반응형

[환경 설정]

저장소 : Git / 깃

사용 목적 : 소스 코드 버전 관리 실시

제 목 : [에러 관리] fatal 'main' does not appear to be a git repository .. Could not read repository

 

[설 명]

-----------------------------------------------------------------------------------------
[구 분]
-----------------------------------------------------------------------------------------

구 분 : Git / 원격 저장소


제 목 : [에러 관리] fatal 'main' does not appear to be a git repository .. Could not read repository


사전) Git 간단 설명 정리 : 

  >> Git 은 소스 코드 버전 관리를 위한 분산 버전관리 시스템 (Distributed Version Control System, DVCS) 입니다.

    - 코드의 변경 이력을 모두 기록하고, 여러 개발자가 안전하게 협업할 수 있게 도와주는 도구입니다.

  >> Git 을 통해 코드의 과거부터 현재까지 모든 변경 이력을 기록하고, 여러 사람이 동시에 작업해도 충돌 없이 협업할 수 있습니다.

  >> Git 주요 용어 정리 : 

    - 저장소 (Repository) : 프로젝트의 파일과 변경 이력을 저장하는 장소 (로컬 저장소: 내 컴퓨터 / 원격 저장소: GitHub, GitLab 등의 서버)
    - 커밋 (Commit) : 저장 버튼 + 스냅샷 (특정 시점의 전체 파일 상태를 기록한 것)
    - 브랜치(Branch) : 독립된 작업 공간 (각 기능(feature)마다 따로 작업할 수 있음 / 개발을 마치면 메인 브랜치에 merge (병합) 하여 통합)
    - remote : 원격 저장소
    - Merge : 두 브랜치를 합치는 가장 흔한 방식
    - Rebase : 히스토리를 깔끔하게 재정렬하며 합치는 방식

  >> Git 주요 명령어 정리 : 

    - git clone : 원격 저장소를 내 로컬에 그대로 복제
    - git pull : 원격 저장소 변경 사항을 가져와 내 브랜치에 자동 병합
    - git fetch : 변경 사항만 로컬에 가져오고 병합은 직접 해야 함
    - git push : 내 변경 사항을 원격 저장소로 올림

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[에러 원인]
-----------------------------------------------------------------------------------------

1. 사전) git push 상황 정리 : force 를 사용해 강제 소스 코드 전체 업데이트 수행 요청

  >> git 명령어 : $ git push origin main --force


2. remote add 시 원격 이름을 origin 대신 main 으로 잘못 설정한 경우 발생할 수 있는 이슈

  >> ❌ 잘못 된 예시 : $ git remote add main https://gitlab.com/<group>/<project>.git


3. git 명령어 업로드 시 명령어 위치가 뒤바뀜 된 경우 발생할 수 있는 이슈

  >> ❌ 잘못 된 예시 (원격을 main으로 착각) : git push main origin


4. 원격 저장소에 있는 특정 브랜치 (ex : main) 에 push 수행 시 force 권한이 비활성화 된 경우 발생할 수 있는 이슈


5. ❌ 에러 로그 전문 : 

  >> fatal: 'main' does not appear to be a git repository 
     fatal: Could not read from remote repository.

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[해결 방법]
-----------------------------------------------------------------------------------------

1. git remote add 시 올바른 원격 추가 (HTTPS 예시) 확인 

  >> $ git remote add origin https://gitlab.com/<group_or_username>/<project>.git

  >> $ git remote -v


2. 현재 브랜치 설정 된 상태 확인 (main 으로 되어 있는 것 확인)

  >> $ git branch --show-current


3. git 에 force 권한이 비활성 화 된 경우 git clone 수행 후 일반 push 방식을 통해 정상 업로드 되는 것 확인

  >> as-is : $ git push origin main --force

  >> to-be : $ git push origin main

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[참고 사이트]
-----------------------------------------------------------------------------------------

[에러 관리] Git Push 업로드 수행 시 Complete 완료 무한 대기 현상 해결 - git push 업로드 시 용량 제한 설정

https://kkh0977.tistory.com/8083

https://blog.naver.com/kkh0977/223910368561


[error failed to push This is usually caused by another repository pushing]

https://blog.naver.com/kkh0977/223719154514


[에러 해결] error: RPC failed HTTP 500 curl 22 The requested URL returned error: 500

https://blog.naver.com/kkh0977/223546998205


[에러 해결] remote rejected pre-receive hook declined error: failed to push

https://blog.naver.com/kkh0977/223498704826

-----------------------------------------------------------------------------------------
 
728x90
반응형
Comments