Fat: 'origin' dường như không phải là kho lưu trữ git


97

Tôi có một kho lưu trữ moodletrên tài khoản Github của mình mà tôi forkedlấy từ kho lưu trữ chính thức.

Sau đó tôi sao chép nó trên máy cục bộ của mình. Nó hoạt động tốt. Tôi đã tạo một số nhánh (dưới masternhánh). Tôi đã thực hiện một số cam kết và nó hoạt động tốt.

Tôi không biết làm thế nào tôi gặp lỗi sau khi tôi làm: git push origin master

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Làm cách nào để giải quyết lỗi mà không ảnh hưởng đến kho lưu trữ của tôi trên Github?

Tôi đang sử dụng Ubuntu 12.10

Nội dung .git/configsau khi làm của tôi cat $(git rev-parse --show-toplevel)/.git/configđưa ra:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[branch "master"]
[branch "MOODLE_23_STABLE"]
[branch "MOODLE_24_STABLE"]
[remote "upstream"]
    url = git://git.moodle.org/moodle.git
    fetch = +refs/heads/*:refs/remotes/upstream/*

Vui lòng in nội dung của .git / config và thêm vào đây
pmod

@pmod: Vui lòng xem câu hỏi cập nhật của tôi.
xan

Thư mục mà bạn đã sao chép trên máy cục bộ phải chứa thư mục .git.
pmod

@xancat $(git rev-parse --show-toplevel)/.git/config
bereal

@pmod: Vâng, tôi đã tìm thấy nó. Vui lòng xem câu hỏi cập nhật của tôi.
xan

Câu trả lời:


116

$HOME/.gitconfiglà bạn toàn cầu cấu hình cho git.
ba cấp độ của tệp cấu hình .

 cat $(git rev-parse --show-toplevel)/.git/config

( được đề cập bởi bereal ) là cấu hình cục bộ của bạn , cục bộ với repo bạn đã nhân bản.

bạn cũng có thể nhập từ trong repo của mình:

git remote -v

Và xem có bất kỳ điều khiển từ xa nào có tên 'origin' được liệt kê trong đó không.

Nếu không, nếu điều khiển từ xa đó (được tạo theo mặc định khi sao chép repo) bị thiếu, bạn có thể thêm lại:

git remote add origin url/to/your/fork

OP đề cập:

Làm git remote -vcho:

upstream git://git.moodle.org/moodle.git (fetch) 
upstream git://git.moodle.org/moodle.git (push)

Vì vậy, ' origin' bị thiếu: tham chiếu đến ngã ba của bạn .
Xem " Sự khác biệt giữa originupstreamtrong github "

nhập mô tả hình ảnh ở đây


Làm git remote -vcho: upstream git://git.moodle.org/moodle.git (fetch) upstream git://git.moodle.org/moodle.git (push)
xan

@xan 'ngược dòng "là repo bạn đã fork. Bạn đang thiếu nguồn gốc, là fork của bạn trên github. Hãy xem stackoverflow.com/a/15632224/6309stackoverflow.com/a/9257901/6309
VonC

Làm cách nào để thay đổi fork của tôi thành master?
Wolfpack'08

@ Wolfpack'08 "fork" có nghĩa là một kho lưu trữ (có nhiều nhánh). Thay đổi nhánh là một hoạt động cục bộ liên quan đến git switch: stackoverflow.com/a/57066202/6309 . Theo cách nói của bạn, "thay đổi một ngã ba để thành thạo" có nghĩa là gì đối với bạn? Thay đổi chi nhánh cục bộ của bạn trong kho lưu trữ nhân bản cục bộ của bạn (của nhánh GitHub từ xa của bạn)?
VonC

1
Nếu bạn sở hữu repo GHY từ xa, chỉ cần đẩy nó: git push -u ghy master.
VonC

22

Tôi gặp phải vấn đề tương tự khi đổi tên kho lưu trữ của mình trên GitHub. Tôi đã cố gắng đẩy vào thời điểm đó tôi đã gặp lỗi

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Tôi đã phải thay đổi URL bằng cách sử dụng

git remote set-url origin ssh://git@github.com/username/newRepoName.git

Sau đó, tất cả các lệnh bắt đầu hoạt động tốt. Bạn có thể kiểm tra sự thay đổi bằng cách sử dụng

git remote -v

Trong trường hợp của tôi sau khi thay đổi thành công, nó hiển thị repo đã đổi tên chính xác trong URL

[aniket@alok Android]$ git remote -v
origin  ssh://git@github.com/aniket91/TicTacToe.git (fetch)
origin  ssh://git@github.com/aniket91/TicTacToe.git (push)

14

Có thể nhánh khác mà bạn cố gắng kéo ra không đồng bộ; vì vậy trước khi thêm và xóa điều khiển từ xa, hãy thử (nếu bạn đang cố gắng lấy từ trang chủ)

git pull origin master

đối với tôi cuộc gọi đơn giản đó đã giải quyết được những thông báo lỗi đó:

  • Fat: 'master' dường như không phải là kho lưu trữ git
  • nghiêm trọng: Không thể đọc từ kho lưu trữ từ xa.

3

Hãy thử tạo nguồn gốc từ xa trước, có thể bị thiếu do bạn thay đổi tên của repo từ xa

git từ xa thêm nguồn gốc URL_TO_YOUR_REPO


2

Điều này không trả lời câu hỏi của bạn, nhưng tôi gặp phải thông báo lỗi tương tự nhưng do một lý do khác. Cho phép tôi thực hiện bài đăng của mình để thu thập thông tin.

Tôi có một repo git trên ổ đĩa mạng. Hãy gọi ổ đĩa mạng này là RAID. Tôi đã sao chép repo này trên máy cục bộ (LOCAL) và trên cụm kiểm tra số của tôi (CRUNCHER). Để thuận tiện, tôi đã gắn thư mục người dùng của tài khoản của mình trên CRUNCHER trên máy cục bộ của mình. Vì vậy, tôi có thể thao tác các tệp trên CRUNCHER mà không cần thực hiện công việc trong thiết bị đầu cuối SSH.

Hôm nay, tôi đã sửa đổi các tệp trong repo trên CRUNCHER thông qua máy cục bộ của mình. Tại một số thời điểm, tôi quyết định cam kết các tệp, vì vậy a đã thực hiện một cam kết. Việc thêm các tệp đã sửa đổi và thực hiện cam kết hoạt động như tôi mong đợi, nhưng khi tôi gọi, git pushtôi nhận được thông báo lỗi tương tự như thông báo được đăng trong câu hỏi.

Lý do là tôi đã gọi pushtừ trong repo CRUNCHER trên LOCAL. Vì vậy, tất cả các đường dẫn trong tệp cấu hình hoàn toàn sai.

Khi tôi nhận ra lỗi của mình, tôi đã đăng nhập vào CRUNCHER qua Terminal và có thể đẩy cam kết.

Vui lòng bình luận nếu lời giải thích của tôi không thể hiểu được, hoặc bạn thấy bài viết của tôi thừa.


1

Tôi đã gặp lỗi tương tự trên tên chi nhánh git pull origin khi đặt tên gốc từ xa là đường dẫn fs chứ không phải ssh trong .git / config :

fatal: '/path/to/repo.git' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly

Nó giống như vậy (điều này chỉ hoạt động đối với người dùng trên cùng một máy chủ của git có quyền truy cập vào git):

url = file:///path/to/repo.git/

Đã sửa nó như vậy (điều này hoạt động trên tất cả người dùng có quyền truy cập vào git user (ssh Authozes_keys hoặc mật khẩu)):

url = git@domain.com:path/to/repo.git

lý do tôi đặt nó làm đường dẫn thư mục là vì các tệp git nằm trên cùng một máy chủ.


Thật! Miền /sau phải là :nếu sử dụng SSH. Đơn giản chỉ cần xác minh với git remote -v.
Noam Manos,
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.