Computer >> 컴퓨터 >  >> 문제 해결 >> 컴퓨터 유지 보수

macOS에서 'fatal: origin does not appear to be a git repository' 오류 해결하는 10가지 방법

macOS Sierra에서 Git 리포지토리를 클론하거나 pull하려고 할 때 "fatal: 'origin' does not appear to be a git repository / fatal: the remote end hung up unexpectedly"라는 오류 메시지를 마주한 적이 있으신가요? 이 문제는 macOS Sierra에 포함된 명령줄 Git 클라이언트 버전이 오래되었을 때 주로 발생합니다.

이 글에서는 Homebrew를 사용해 Git 패키지를 최신 버전으로 업데이트한 뒤, 다시 해당 작업을 시도하는 방법을 비롯해 이 오류를 해결하는 다양한 방법을 단계별로 안내해 드립니다.

맥(Mac)의 Git이란 무엇인가요?

Git은 소규모 프로젝트부터 매우 큰 규모의 프로젝트까지 속도와 효율성을 모두 갖춰 처리할 수 있도록 설계된 무료 오픈소스 분산 버전 관리 시스템(DVCS)입니다.

Git은 배우기 쉽고 용량이 작으면서도 놀랍도록 빠른 성능을 자랑합니다. 무엇보다 각 개발자에게 전체 개발 이력의 로컬 사본을 제공하기 때문에, 오프라인 상태에서 작업한 후 나중에 중앙 서버로 변경 사항을 푸시(push)할 수 있다는 것이 가장 큰 장점입니다.

프로 팁: 시스템 문제나 성능 저하를 일으킬 수 있는 성능 이슈, 불필요한 파일(정크 파일), 유해 앱, 보안 위협 요소를 맥 스캔으로 미리 점검해 보세요.

Git을 처음 접하는 분이라면 맥에서 Git이 어떤 역할을 하는지 궁금하실 수 있습니다. 간단히 말해, Git은 개발자들이 코드 개발 프로젝트에서 쉽게 협업할 수 있도록 도와주며, 문제가 생겼을 때 변경 사항을 손쉽게 되돌릴 수 있게 해주는 도구입니다.

macOS에는 Git이 기본으로 탑재되어 있지만, 초기 설정은 되어 있지 않습니다. 그렇기 때문에 처음으로 Git을 사용하려 할 때 "origin does not appear to be a git repository" 오류와 같은 문제를 겪을 수 있습니다. 다행히 이 오류는 비교적 쉽게 해결할 수 있으며, 아래 섹션에서 해결 방법을 하나씩 살펴보겠습니다.

'origin does not appear to be a git repository' 오류란?

macOS Sierra 또는 High Sierra 환경에서 애플 사용자들이 가장 자주 마주하는 문제 중 하나가 바로, 깃허브(GitHub)나 비트버킷(Bitbucket)의 리포지토리를 클론하려고 할 때 나타나는 "fatal: 'origin' does not appear to be a git repository" 오류 메시지입니다.

이 오류는 보통 Xcode 9 또는 macOS 10.13 High Sierra 업데이트를 설치한 직후, 혹은 -cd, -ls, -mkdir, -git init, -git pull 같은 터미널 명령어를 실행할 때 발생합니다. 잘못된 디렉터리에서 명령어를 실행했거나 .git 폴더를 실수로 삭제한 경우에도 나타날 수 있습니다. 어느 경우든 걱정하지 않으셔도 됩니다. 생각보다 간단히 고칠 수 있습니다!

'fatal: origin/master does not appear to be a git repository' 오류 수정 방법

대체로 Git은 macOS에서 안정적으로 동작하지만, 가끔씩 알 수 없는 오류를 만날 때가 있습니다. 지금부터 이 오류를 해결하는 구체적인 방법들을 소개합니다.

해결 방법 1: 리포지토리에 접근 중인 애플리케이션 종료하기

먼저 리포지토리에 접근하고 있는 열려 있는 애플리케이션을 모두 종료하세요. 텍스트 에디터, IDE, 터미널 창 등이 여기에 해당됩니다. 그다음 프로젝트 루트 디렉터리에 .git 폴더가 존재하는지 확인합니다.

.git 디렉터리는 Git이 프로젝트의 모든 메타데이터를 저장하는 곳입니다. 이 폴더가 없다면 실수로 삭제했거나, 애초에 Git 리포지토리가 아닌 곳에 접근하려 하고 있는 것일 수 있습니다.

.git 디렉터리가 존재한다면, 그 안에 HEAD 파일이 있는지도 확인해 보세요. HEAD 파일은 리포지토리의 가장 최근 커밋을 가리킵니다. 이 파일이 없다는 것은 아직 커밋된 내역이 하나도 없다는 의미입니다.

해결 방법 2: origin을 삭제 후 다시 추가하기

"error fatal: origin does not appear to be a git repository" 메시지가 계속 표시된다면, 원격(origin) 저장소가 더 이상 유효한 Git 리포지토리를 가리키고 있지 않을 가능성이 높습니다. 이 경우 origin 설정을 삭제한 뒤 다시 추가해야 합니다. 터미널에서 진행하는 순서는 다음과 같습니다:

먼저 git init으로 리포지토리를 초기화하고, git add(예: git add *.c)로 파일을 스테이징한 후, git commit -m "Initial Commit"으로 첫 커밋을 생성합니다.

해결 방법 3: master 브랜치에서만 체크아웃하기

문제의 원인이 잘못된 브랜치에서 체크아웃을 시도했기 때문일 수도 있습니다. 오류 메시지가 "origin이 Git 리포지토리처럼 보이지 않는다"고 알려주는 이유는, 포크(fork)한 저장소에는 존재하지 않는 master 브랜치에서 체크아웃하려 했기 때문일 가능성이 큽니다.

이 경우 올바른 브랜치를 지정해서 체크아웃하면 문제가 해결됩니다. 명령줄 Git 도구를 사용해도 되고, SourceTree나 GitHub Desktop 같은 GUI 도구에 익숙하다면 이들 도구를 활용해도 좋습니다.

해결 방법 4: push/pull 시점에는 Git 명령어 실행 피하기

오류가 발생하는 시점에 push/pull 작업을 진행 중이라면, 오류를 유발할 수 있는 Git 명령어 사용을 잠시 피하세요. 아래 순서를 참고해 진행해 보세요:

  1. 오류 메시지가 나타나면 먼저 올바른 디렉터리에 있는지 확인합니다. 서브 디렉터리가 아닌 프로젝트의 메인 디렉터리에 있어야 합니다.
  2. 디렉터리가 맞다면, git status 명령어를 실행해 해당 프로젝트가 실제로 Git 리포지토리인지 확인합니다.
  3. Git이 추적하지 않는 파일이 있다면 git add 명령어로 리포지토리에 추가합니다.
  4. 모든 파일이 추적되면 git pull 또는 git push 명령어를 다시 실행해 봅니다.

해결 방법 5: remotes 설정의 사용자 이름 확인하기

또 하나의 해결책은 Git 리포지토리의 remotes 설정에 사용자 이름이 올바르게 입력되어 있는지 확인하는 것입니다. 텍스트 편집기로 설정 파일을 연 뒤 [remote "origin"] 섹션을 찾아보세요. 바로 아래 줄에 사용자 이름과 @ 기호가 함께 표시되어야 합니다. 만약 없다면 사용자 이름을 추가하고 파일을 저장하세요. 이후 git push를 오류 없이 실행할 수 있을 것입니다.

해결 방법 6: GitHub와의 연결 상태 점검하기

컴퓨터와 GitHub 사이의 연결 상태를 점검하는 것도 좋은 방법입니다. 화면 우측 하단의 Advanced Options(고급 옵션)를 클릭하면 Connection Status(연결 상태)와 SSH Keys(SSH 키) 두 개의 탭을 볼 수 있습니다.

Connection Status 항목에서 SSH 공개 키 상태 옆에 초록색 또는 빨간색 표시등이 나타나는지 확인하세요(해당되는 경우). 해당 박스를 클릭하면 키 상태에 대한 더 자세한 정보를 볼 수 있습니다.

예를 들어, GitHub가 오프라인 상태이거나 회사·학교의 방화벽 설정으로 차단된 경우 인터넷 연결 상태가 표시되지 않을 수 있습니다. 이 경우 다시 Advanced Options로 돌아가 Add New Connection(새 연결 추가)을 선택하고, SSH를 통해 GitHub에 접속하기 위한 정보를 입력한 뒤 Connect를 클릭하세요. 연결이 검증되고 문제가 해결될 것입니다.

해결 방법 7: 필요할 때만 강제 푸시(force push) 사용하기

경우에 따라 변경 사항을 원격 리포지토리에 강제로 푸시해야 할 수 있습니다. 이는 주로 원격 리포지토리에 적용된 변경 내역이 로컬 사본에 반영되지 않았을 때 필요합니다.

이때는 --force 옵션과 함께 git push 명령어를 사용하면 됩니다. 다만 이 옵션은 잘못 사용하면 문제를 일으킬 수 있으므로 신중하게 사용해야 합니다.

해결 방법 8: 다양한 클론 옵션 시도하기(--bare, -n 등)

이 오류가 나타난다면 현재 디렉터리가 유효한 Git 리포지토리가 아니라는 뜻일 수 있습니다. 몇 가지 다른 방법으로 시도해 볼 수 있는데, 그중 하나가 다양한 클론 옵션을 활용하는 것입니다.

예를 들어 --bare 또는 -n 옵션을 시도해 볼 수 있습니다. 또 다른 방법은 현재 디렉터리에서 새 Git 리포지토리를 초기화하는 것입니다. git init 명령어를 실행하면 간단히 초기화할 수 있습니다. 그래도 해결되지 않는다면 .git 디렉터리를 삭제하고 처음부터 다시 시작해야 할 수도 있습니다.

.git 디렉터리를 삭제한 후에는 다음 명령어를 실행하세요: git init && git remote add origin url_to_original_repository

해결 방법 9: Outbyte MacAries 활용하기

"fatal origin does not appear to be a git repository" 오류는 여러 가지 원인으로 발생할 수 있으며, 해결하기 위해 여러 단계를 거쳐야 할 수도 있습니다. 권한 문제, 디스크 공간 부족, 하드웨어 또는 소프트웨어 오류 등이 대표적인 원인입니다. 이런 경우 Outbyte MacAries를 활용하면 몇 분 만에 이러한 문제를 효과적으로 해결할 수 있습니다.

Outbyte MacAries는 macOS를 최적화하여 이런 오류를 수정하는 데 도움을 주는 소프트웨어입니다. 사용법도 간단합니다. 프로그램을 다운로드해 설치한 후 실행하고, 안내에 따르기만 하면 됩니다. 몇 분 안에 문제가 해결될 것입니다.

해결 방법 10: 그래도 안 되면 터미널 대신 GitHub Desktop 사용하기

GitHub Desktop은 터미널 대신 GUI 환경에서 리포지토리를 관리할 수 있는 애플리케이션입니다. GitHub Desktop을 다운로드해 실행하고 GitHub 계정으로 로그인한 뒤, 리포지토리를 컴퓨터로 클론하세요. 이후에는 문제없이 변경 사항을 만들고 푸시할 수 있습니다.

오류를 예방하는 방법

이 오류를 미리 예방하는 방법도 몇 가지 있습니다. 첫 번째는 원격 리포지토리가 등록되어 있는지 확인하는 것입니다. git remote add origin 명령어로 원격 저장소를 추가할 수 있으며, 이미 등록했다면 origin URL이 정확한지 반드시 점검하세요.

두 번째는 변경 사항을 푸시하기 전에 먼저 git pull 명령어를 실행하는 것입니다. 이렇게 하면 로컬 리포지토리가 원격 리포지토리와 최신 상태로 동기화되어 있다는 확신을 얻을 수 있습니다.

마지막으로, 그래도 오류가 발생한다면 원격 리포지토리에 존재하지 않는 브랜치로 푸시하려 하고 있을 가능성이 있습니다. 이 경우 원격 리포지토리에서 해당 브랜치를 생성한 뒤 변경 사항을 푸시하면 됩니다.

마무리

macOS Catalina 또는 Sierra에서 "fatal origin does not appear to be a git repository" 오류를 만나셨다면, 위에서 소개한 여러 가지 방법으로 해결하실 수 있습니다. 이 글이 여러분의 문제 해결에 도움이 되었기를 바랍니다.

궁금한 점이나 추가로 문의하실 내용이 있다면 아래 댓글로 남겨주세요. 성심껏 답변해 드리겠습니다. 다루었으면 하는 다른 문제가 있다면 댓글로 알려주셔도 좋습니다. 댓글 섹션은 macOS에서 "fatal origin does not appear to be a git repository" 오류 해결과 관련한 어떤 토론이나 제안에도 열려 있습니다. 마지막으로, 이 글이 유익했다면 지인들과 공유해 주세요. 많은 분께 도움이 될 것입니다!