Git push: “death” origin ”dường như không phải là một kho lưu trữ git - Fatal Không thể đọc từ kho lưu trữ từ xa.”


119

Tôi biết những câu hỏi tương tự đã được hỏi.

Tuy nhiên, tôi tin rằng vấn đề của tôi là do một sai lầm mà tôi đã mắc phải trước đây và do đó là khác: hãy để tôi giải thích.

Mọi thứ đều hoạt động trơn tru, như tôi có thể:

  • git add . tất cả các tệp từ kho lưu trữ cục bộ của tôi.
  • git commit -m "message here" để thêm tin nhắn vào cam kết của tôi.
  • git push origin master để tải tệp của tôi lên GitHub.
  • git push heroku master để tải các tệp của tôi lên Heroku.

Tuy nhiên, tại một số thời điểm, tôi đã tạo một nhánh mới được gọi là cục bộ add-calendar-modeltrong trường hợp các bước phát triển ứng dụng tiếp theo sẽ đi về phía nam ...

... Đó là chính xác những gì đã xảy ra.

Tuy nhiên, mặc dù có nhiều cố gắng, tôi vẫn không thể lấy được mã ban đầu - tức là mã từ trước khi tôi tạo chi nhánh mới - từ masterchi nhánh vào kho lưu trữ cục bộ của mình.

Vì vậy, tôi quyết định xóa thủ công tất cả các tệp khỏi kho lưu trữ cục bộ và chi nhánh git clonecủa tôi masterkhỏi GitHub.

Bằng cách này, tôi đã lấy lại tất cả các tệp của mình, nhưng bây giờ, tôi không thể đẩy thêm vào kho lưu trữ từ xa.

Bất kỳ lúc nào tôi cố gắng chạy git push origin add-calendar-modelhoặc git push origin master, tôi gặp lỗi sau:

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.

Tôi không thoải mái lắm với Git và GitHub, như bạn có thể đoán bây giờ, và tôi phải thừa nhận rằng tôi không có manh mối nào về cách sửa lỗi này.

Bất kỳ ý tưởng?


Tôi đã gặp lỗi tương tự, Nhưng vấn đề của tôi là tôi đã khởi tạo git trong thư mục mẹ của thư mục hiện tại mà tôi đang thử. Trong trường hợp nếu ai đó vẫn gặp phải, có thể xem nơi git được khởi tạo và sau đó thử lại.
Himanshu Kriplani

Câu trả lời:


215

Trước tiên, hãy kiểm tra xem nguồn gốc của bạn đã được đặt chưa bằng cách chạy

git remote -v

Điều này sẽ hiển thị cho bạn tất cả các điều khiển từ xa đẩy / tìm nạp cho dự án.

Nếu điều này trả về không có đầu ra, hãy chuyển đến khối mã cuối cùng.

Xác minh tên / địa chỉ từ xa

Nếu điều này trả về cho thấy rằng bạn đã đặt điều khiển từ xa, hãy kiểm tra xem tên của điều khiển từ xa có khớp với điều khiển từ xa bạn đang sử dụng trong các lệnh của mình không.

$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

Nếu bạn muốn đổi tên điều khiển từ xa hoặc thay đổi URL của điều khiển từ xa, trước tiên bạn sẽ muốn xóa điều khiển từ xa cũ, sau đó thêm điều khiển chính xác.

Xóa điều khiển từ xa cũ

$git remote remove myOrigin

Thêm điều khiển từ xa bị thiếu

Sau đó, bạn có thể thêm vào điều khiển từ xa thích hợp bằng cách sử dụng

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

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

Nó làm việc cho tôi mà không có ssh://trướcgit@example.com:1234/myRepo.git
Carol-Theodor Pelu

Tôi đang đọc câu hỏi này nếu bạn cũng có thể giúp với lỗi đẩy kho lưu trữ mới?
StaticVariable

12

Như Matt Clark đã nói ở trên

Tuy nhiên, nguồn gốc có thể không được đặt, vì vậy hãy bỏ qua bước xóa và chỉ cần cố gắng thêm có thể xóa điều này.

git remote add origin <"clone">

Trường hợp "sao chép" chỉ đơn giản là truy cập repo GitHub của bạn và sao chép "URL sao chép HTTPS" và dán vào GitBash


3

Đảm bảo rằng tệp cấu hình tại .git là chính xác ... Kiểm tra URL và đảm bảo rằng bạn đang sử dụng đúng giao thức cho các khóa của mình ... 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

Chúng tôi đang xem URL ... ví dụ: Đối với bitbucket, hãy mong đợi git@bitbucket.org .... Nếu gitbucket.org của nó. thực hiện các thay đổi cần thiết .. LƯU Hãy thử đẩy lại.


1

Nó làm việc cho tôi.

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

thêm URL kho lưu trữ vào nguồn gốc trong thư mục làm việc cục bộ


0

Một lỗi tương tự xuất hiện trong khi kéo các thay đổi từ điểm gốc. Nếu bạn đang thử trong Intellij từ các tùy chọn menu, thì thao tác kéo có thể không hoạt động trực tiếp.

Đi tới terminal và nhập lệnh này và điều này sẽ giải quyết vấn đề: git pull origin master


0

Tôi gặp vấn đề tương tự. Khi tôi kiểm tra tệp cấu hình của mình, tôi nhận thấy rằng 'fetch = + refs / heads / : refs / remotes / origin / ' nằm trên cùng một dòng với 'url = Z: /GIT/REPOS/SEL.git' như được hiển thị:

[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

Lúc đầu, tôi không nghĩ rằng điều này sẽ quan trọng nhưng sau khi xem bài đăng của Magere, tôi đã chuyển dòng và điều đó đã khắc phục được sự cố:

[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

nếu bạn thêm kho lưu trữ từ xa của mình bằng cách sử dụng git clone thì hãy làm theo các bước: -

git clone <repo_url> sau đó

git init

git add * * có nghĩa là thêm tất cả các tệp

git commit -m 'your commit'

git remote -vđể kiểm tra bất kỳ nhánh nào chạy hay không nếu không thì không có gì hiển thị sau đó chúng tôi thêm hoặc tìm nạp kho lưu trữ. " tìm nạp trước" . Bạn cần chạy git pull origin <branch> hoặc git pull -r origin <branch>trước một lần đẩy tiếp theo .

sau đó

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

0

Đây là cách tôi cập nhật nhánh chính

$ 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
Hãy thử thêm lời giải thích vào câu trả lời của bạn theo cách giải quyết câu hỏi và cố gắng giúp người đọc hiểu. Hiện tại, nó chỉ đọc giống như một số giai thoại và thậm chí sẽ không hoạt động trong trường hợp chung (ví dụ: https://github.com/là root trang web và git repo)
Kache

-3

Đôi khi bạn không có REF cục bộ để đẩy nhánh đó trở lại nguồn gốc.
Thử

git push origin master:master

Điều này cho biết rõ ràng nhánh nào cần đẩy đến (và từ)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.