본문 바로가기
IT/linux

linux git fatal: Not a git repository (or any of the parent directories): .git 오류 해결 방법

by 어느해겨울 2022. 1. 5.

git [Not a git repository] 오류 해결 방법

 

 

git repository를 사용하기 위해 아래와 같이 디렉터리를 생성하고 git repository를 pull 하면 

[fatal: Not a git repository (or any of the parent directories): .git]

오류가 발생한다.

muabow@muabow-WorkSpace:~$ mkdir github
muabow@muabow-WorkSpace:~$ cd github/
muabow@muabow-WorkSpace:~/github$ ls
muabow@muabow-WorkSpace:~/github$ git pull https://github.com/muabow/home.git
fatal: Not a git repository (or any of the parent directories): .git

 

이는 [git --help]를 통해 볼 수 있는 도움말에 나와있듯이 local workspace에 git repository를 생성하려면 init 옵션을 사용하여 local repository에 대한 선언을 해주어야 한다.

muabow@muabow-WorkSpace:~$ git --help
사용법: git [--version] [--help] [-C <path>] [-c name=value]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]

다음은 여러가지 상황에서 자주 사용하는 깃 명령입니다:

작업 공간 시작 (참고: git help tutorial)
   clone      저장소를 복제해 새 디렉터리로 가져 옵니다
   init       빈 깃 저장소를 만들거나 기존 저장소를 다시 초기화합니다

변경 사항에 대한 작업 (참고: git help everyday)
   add        파일 내용을 인덱스에 추가합니다
   mv         파일, 디렉터리, 심볼릭 링크를 옮기거나 이름을 바꿉니다
   reset      현재 HEAD를 지정한 상태로 재설정화합니다
   rm         파일을 작업 폴더에서 제거하고 인덱스에서도 제거합니다

커밋 내역과 상태 보기 (참고: git help revisions)
   bisect     이진 탐색으로 버그를 만들어낸 커밋을 찾습니다
   grep       패턴과 일치하는 줄을 표시합니다
   log        커밋 기록을 표시합니다
   show       여러가지 종류의 오브젝트를 표시합니다
   status     작업 폴더 상태를 표시합니다

커밋 내역을 키우고, 표시하고, 조작하기
   branch     브랜치를 만들거나, 삭제하거나, 목록을 출력합니다
   checkout   브랜치를 전환하거나 작업 파일을 복구합니다
   commit     바뀐 사항을 저장소에 기록합니다.
   diff       커밋과 커밋 사이, 커밋과 작업 내용 사이 등의 바뀐 점을 봅니다
   merge      여러 개의 개발 내역을 하나로 합칩니다
   rebase     로컬 커밋을 업데이트된 업스트림 head 다음에 맞춰 넣습니다
   tag        태그를 만들거나, 표시하거나, 삭제하거나, GPG 서명을 검증합니다

협동 작업 (참고: git help workflows)
   fetch      다른 저장소에서 오브젝트와 레퍼런스를 다운로드합니다
   pull       다른 저장소 또는 다른 로컬 브랜치에서 가져오거나 통합합니다
   push       원격 레퍼런스 및 그와 관련된 오브젝트를 업데이트합니다

'git help -a' 및 'git help -g' 명령을 실행하면 하위 명령어와 개념 설명서의
목록을 볼 수 있습니다. 특정 하위 명령어나 개념에 대해 읽어 보려면 'git help
<명령>' 또는 'git help <개념>' 명령을 실행하십시오.

 

아래와 같이 [git init]을 실행한 후 다시 [git pull]을 통해 repository를 가져오면 정상 동작이 되는 것을 확인할 수 있다.

muabow@muabow-WorkSpace:~/github$ git init
초기화: 빈 깃 저장소, 위치 /home/muabow/github/.git/
muabow@muabow-WorkSpace:~/github$ git pull https://github.com/muabow/home.git
remote: Enumerating objects: 1930, done.
remote: Counting objects: 100% (1930/1930), done.
remote: Compressing objects: 100% (1357/1357), done.
remote: Total 1930 (delta 445), reused 1902 (delta 420), pack-reused 0
오브젝트를 받는 중: 100% (1930/1930), 56.22 MiB | 10.81 MiB/s, 완료.
델타를 알아내는 중: 100% (445/445), 완료.
https://github.com/muabow/home URL에서
 * branch            HEAD       -> FETCH_HEAD
muabow@muabow-WorkSpace:~/github$

 

[git clone]은 init 과정 없이 사용이 가능하다. repository와 동기를 맞추느냐 아니냐에 따라 나뉜다.

git clone은 svn export의 동작과 같고 이고 git pull은 git checkout과 같은 동작이다.

 

끝.

 

 

댓글