힘내 푸시 : "심각한 '원본'이 git 저장소로 보이지 않습니다. 치명적입니다. 원격 저장소에서 읽을 수 없습니다."


119

비슷한 질문이 이미 제기 된 것을 알고 있습니다.

하지만 제 문제는 제가 이전에 저지른 실수로 인한 것이라고 생각하므로 다른 점이 있습니다. 설명하겠습니다.

다음과 같이 모든 것이 원활하게 작동했습니다.

  • git add . 내 로컬 저장소의 모든 파일.
  • git commit -m "message here" 내 커밋에 메시지를 추가합니다.
  • git push origin master 내 파일을 GitHub에 업로드합니다.
  • git push heroku master 내 파일을 Heroku에 업로드합니다.

그러나 어느 시점 add-calendar-model에서 앱 개발의 다음 단계가 남을 경우를 대비하여 로컬로 호출되는 새 브랜치를 만들었습니다 .

... 정확히 일어난 일입니다.

그러나 여러 번의 시도에도 불구하고, master브랜치에서 로컬 저장소로 초기 코드 (예 : 새 브랜치를 생성하기 전의 코드)를 가져 오지 못했습니다 .

그래서, 난 수동으로 로컬 저장소 및 모든 파일을 삭제하기로 결정 git clonemasterGitHub의에서 분기합니다.

이렇게하면 모든 파일을 되찾았지만 이제 더 이상 원격 저장소로 푸시 할 수 없습니다.

git push origin add-calendar-model또는 을 실행하려고 할 때마다 git push origin master다음 오류가 발생합니다.

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

Please make sure you have the correct access rights
and the repository exists.

지금 쯤 짐작 하셨겠지만 저는 Git과 GitHub에 익숙하지 않습니다.이 문제를 해결하는 방법에 대한 단서가 없다는 것을 인정해야합니다.

어떤 생각?


비슷한 오류가 있었지만 문제는 내가 시도한 현재 폴더의 부모 디렉토리에서 git을 초기화했다는 것입니다. 누군가가 여전히 직면하고 있다면 git이 초기화 된 위치를보고 다시 시도 할 수 있습니다.
Himanshu Kriplani

답변:


215

먼저 다음을 실행 하여 오리진 이 설정 되었는지 확인하십시오.

git remote -v

프로젝트의 모든 푸시 / 페치 리모컨이 표시됩니다.

이것이 출력없이 반환되면 마지막 코드 블록으로 건너 뜁니다.

원격 이름 / 주소 확인

리모컨이 설정되어 있음이 표시되면 리모컨의 이름이 명령에서 사용중인 리모컨과 일치하는지 확인하십시오.

$git remote -v
myOrigin ssh://git@example.com:1234/myRepo.git (fetch)
myOrigin ssh://git@example.com:1234/myRepo.git (push)

# this will fail because `origin` is not set
$git push origin master

# you need to use
$git push myOrigin master

리모컨의 이름을 바꾸거나 리모컨의 URL을 변경하려면 먼저 이전 리모컨을 제거한 다음 올바른 리모컨을 추가해야합니다.

이전 리모컨 제거

$git remote remove myOrigin

누락 된 리모컨 추가

그런 다음 적절한 리모컨을 사용하여 추가 할 수 있습니다.

$git remote add origin ssh://git@example.com:1234/myRepo.git

# this will now work as expected
$git push origin master

그것은없이 나를 위해 일한 ssh://앞에git@example.com:1234/myRepo.git
캐롤 - 테오도르 Pelu

새 저장소 푸시 오류에도 도움이 될 수 있다면이 질문을 읽고 있었습니까?
StaticVariable

12

Matt Clark이 위에서 언급했듯이

그러나 원본이 설정되지 않았을 수 있으므로 삭제 단계를 건너 뛰고 단순히 추가를 시도하면이 문제를 해결할 수 있습니다.

git remote add origin <"clone">

"clone"은 단순히 GitHub 저장소로 이동하고 "HTTPS 복제 URL"을 복사하여 GitBash에 붙여 넣는 것입니다.


3

.git의 구성 파일이 올바른지 확인하십시오 ... URL을 확인하고 키에 올바른 프로토콜을 사용하고 있는지 확인하십시오 ... ProjectWorkspace / .git / config

  ~Wrong url for git@bitbucket
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = gitbucket.org:Prezyack/project-one-hello.git
    fetch = +refs/heads/*:refs/remotes/origin/*

 ~Wrong URL for SSH...
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = https://emmap1@bitbucket.org/emmap1/bitbucketspacestation.git
[branch "master"]
    remote = origin
    merge = refs/heads/master

우리는 URL을보고 있습니다 ... 예 : bitbucket의 경우 git@bitbucket.org를 기대하십시오 .... gitbucket.org이면. 필요한 사항을 변경하십시오. 저장 다시 시도하십시오.


1

그것은 나를 위해 작동합니다.

git remote add origin https://github.com/repo.git
git push origin master

로컬 작업 디렉토리의 오리진에 저장소 URL을 추가하십시오.


0

원점에서 변경 사항을 가져 오는 동안 유사한 오류가 나타납니다. 메뉴 옵션에서 Intellij를 시도하는 경우 풀이 직접 작동하지 않을 수 있습니다.

터미널로 이동하여 다음 명령을 입력하면 해결됩니다. git pull origin master


0

나는 같은 문제가 있었다. 내 구성 파일을 확인했을 때 'fetch = + refs / heads / : refs / remotes / origin / '이 다음과 같이 'url = Z : /GIT/REPOS/SEL.git'과 같은 줄에 있음을 알았습니다.

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = Z:/GIT/REPOS/SEL.git     fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 1109x563+32+32 216 255

처음에는 이것이 중요하다고 생각하지 않았지만 Magere의 게시물을 본 후 라인을 이동하여 문제를 해결했습니다.

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = Z:/GIT/REPOS/SEL.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 1109x563+32+32 216 255

0

git clone을 사용하여 원격 저장소를 추가하는 경우 다음 단계를 따르십시오.

git clone <repo_url> 그때

git init

git add * * 모든 파일 추가를 의미합니다.

git commit -m 'your commit'

git remote -v브랜치 실행 여부를 확인하기 위해 아무것도 표시되지 않으면 저장소를 추가하거나 가져옵니다. " 먼저 가져 오기" . 실행 git pull origin <branch> 하거나 다음 푸시git pull -r origin <branch> 전에 실행 해야합니다 .

그때

git remote add origin <git url>
 git pull -r origin master
git push -u origin master```

0

이것이 내가 마스터 브랜치를 업데이트 한 방법입니다.

$ git remote -v
$ git remote rm origin
$ git commit -m "your commit"
$ git remote add origin https://github.com/user/repo.git
$ git push -f origin master

1
질문을 해결하고 독자가 이해하는 데 도움이되도록 답변에 설명을 추가해보십시오. 현재는 일부 일화처럼 읽고 일반적인 경우에도 작동하지 않습니다 (예 : https://github.com/웹 사이트 루트 및 git repo)
Kache

-3

때로는 해당 분기를 원점으로 다시 푸시하기위한 로컬 REF가 없습니다.
시험

git push origin master:master

이것은 푸시 할 분기를 명시 적으로 나타냅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.