Tại sao Git lại cho tôi biết "Không có 'nguồn gốc'" xa xôi như vậy khi tôi cố gắng đẩy đến nguồn gốc?


113

Tôi rất mới đối với Git; Tôi chỉ mới tạo một tài khoản GitHub gần đây.

Tôi vừa cố gắng đẩy kho lưu trữ đầu tiên của mình (một dự án mẫu), nhưng tôi gặp lỗi sau:

No such remote 'origin'

Tôi đã chạy các lệnh sau:

git init
git commit -m "first commit"
git remote add origin https://github.com/VijayNew/NewExample.git
git push -u origin master

Tuy nhiên, khi tôi chạy git commit -m "first commit", tôi nhận được thông báo sau:

nothing added to commit but untracked files present (use "git add" to track)

Vì vậy, sau đó tôi đã cố gắng thiết lập origin, sử dụng

git remote set-url origin https://github.com/VijayNew/NewExample.git

Nhưng tôi gặp lỗi sau:

No such remote 'origin'

Tôi đã làm gì sai, và tôi nên làm gì?


Điều gì mang lại cho bạn git-remote -v?
hek2mgl

1
giữa init và cam kết thêm một "git add." bươc. Sản lượng gì "git từ xa" (hoặc git -v từ xa ") cung cấp cho bạn?

git remote -vKhông có gì là Hiển thị.
Vijay

1
bạn đã thêm 'git add' ?????
Raja Simon

3
Khi bạn bắt đầu một kho lưu trữ mới, lệnh REMOTE đầu tiên phải là git remote add origin git@abc.com: mygit, nếu bạn chạy git remote set-url origin git@abc.com: mygit, bạn sẽ nhận được thông báo lỗi: Không như vậy từ xa 'nguồn gốc'. Tôi gặp phải vấn đề tương tự và phải mất vài phút trước khi tôi tìm ra điều này. Hy vọng điều này có thể giúp những người khác.
Kemin Zhou

Câu trả lời:


156

Hai vấn đề:

1 - Bạn chưa bao giờ yêu cầu Git bắt đầu theo dõi bất kỳ tệp nào

Bạn viết rằng bạn đã chạy

git init
git commit -m "first commit"

và ở giai đoạn đó, bạn có

nothing added to commit but untracked files present (use "git add" to track).

Git đang nói với bạn rằng bạn chưa bao giờ yêu cầu nó bắt đầu theo dõi bất kỳ tệp nào ngay từ đầu và nó không có gì để chụp nhanh. Do đó, Git không tạo cam kết. Trước khi cố gắng cam kết, bạn nên nói với Git (ví dụ):

Này Git, bạn có thấy README.mdtệp đó nằm yên trong thư mục làm việc của tôi không? Bạn có thể đặt nó dưới sự kiểm soát phiên bản cho tôi không? Tôi muốn nó xuất hiện trong bản cam kết / ảnh chụp nhanh / bản sửa đổi đầu tiên của mình ...

Cho rằng bạn cần phải giai đoạn các tập tin quan tâm, sử dụng

git add README.md

trước khi chạy

git commit -m "some descriptive message"

2 - Bạn chưa thiết lập kho lưu trữ từ xa

Sau đó bạn đã chạy

git remote add origin https://github.com/VijayNew/NewExample.git

Sau đó, kho lưu trữ cục bộ của bạn sẽ có thể giao tiếp với kho lưu trữ từ xa nằm tại URL được chỉ định ( https://github.com/VijayNew/NewExample.git ) ... miễn là kho lưu trữ từ xa đó thực sự tồn tại! Tuy nhiên, có vẻ như bạn chưa bao giờ tạo repo từ xa đó trên GitHub ngay từ đầu: tại thời điểm viết câu trả lời này, nếu tôi cố gắng truy cập URL tương ứng, tôi nhận được

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

Trước khi cố gắng đẩy lên kho lưu trữ từ xa đó, bạn cần đảm bảo rằng kho lưu trữ đó thực sự tồn tại. Vì vậy, hãy truy cập GitHub và tạo repo từ xa được đề cập. Sau đó và chỉ khi đó, bạn mới có thể đẩy thành công với

git push -u origin master

@ Jubobs. Thử thách đầu tiên là sai lầm của tôi. Bây giờ tôi làm như thế này. git init git add --all git commit -m "first commit". Bây giờ nó đang hoạt động. 2) Trên thực tế, tôi đã xóa tài khoản của mình trước 20 phút. Bây giờ tôi đã tạo một tài khoản mới. https://github.com/VijayMobileApp/WindowsPhoneExample.git
Vijay

Và bây giờ tôi vẫn nhận đượcremote: Repository not found. fatal: repository 'https://github.com/VijayNew/NewExample.git/' not found
Vijay

@Vijay bạn đã xóa tài khoản cũ của bạn nhưng vẫn tài khoản cũ được sử dụng
Raja Simon

$ git remote set-url origin https://github.com/VijayMobileApp/WindowsPhoneExamp le.git fatal: No such remote 'origin'
Vijay

1
Bằng cách truy cập URL, tôi thấy rằng bạn hiện đã tạo một repo có tên WindowsPhoneExampletrên tài khoản GitHub của mình , VijayMobileApp. Tất cả những gì bạn cần làm bây giờ là chạy git remote add origin https://github.com/VijayMobileApp/WindowsPhoneExample. Sau đó, bạn sẽ có thể đẩy với git push -u origin master.
tưng bừng

42

Tôi đoán bạn đã không chạy lệnh này sau khi cam kết không thành công vì vậy chỉ cần thực sự chạy lệnh này để tạo điều khiển từ xa:

 git remote add origin https://github.com/VijayNew/NewExample.git

Và cam kết không thành công vì bạn cần git addmột số tệp bạn muốn theo dõi.


1
Lệnh này chỉ cho phép repo cục bộ biết về remote. Nó không thực sự tạo repo từ xa trên máy chủ GitHub, mà tôi nghĩ đó là những gì OP cần làm ở đây.
tưng bừng

1
Tôi biết rõ lệnh này làm gì. Từ câu hỏi, tôi đoán người dùng có thể đã dán tất cả các lệnh cùng một lúc và cam kết không thành công nên anh ta không bao giờ thực sự thêm điều khiển từ xa.
Emil Davtyan

1
Chỉ cần được rõ ràng, tôi đã không gợi ý rằng bạn không biết những gì git remote addkhông :)chỉ rằng bạn đã không xem xét khả năng rằng OP chưa bao giờ tạo ra repo từ xa.
joong0bs

2
Tôi gặp vấn đề tương tự và tôi đã tạo repo từ xa. Câu trả lời này là giải pháp.
sdjuan

Đây là những gì tôi cần, dòng lệnh (set-url) là gợi ý --add không hoạt động chút nào. cảm ơn
Xeuron

17

Tôi đã gặp phải vấn đề này khi cố gắng liên kết một repo được tạo cục bộ với một repo trống trên github. Ban đầu tôi đã cố gắng git remote set-urlnhưng git remote addthay vào đó tôi phải làm .

git remote add origin https://github.com/VijayNew/NewExample.git
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.