Câu hỏi src refspec master không khớp với bất kỳ khi nào đẩy commit trong git


Tôi nhân bản kho lưu trữ của mình với:

git clone ssh://xxxxx/xx.git 

nhưng sau khi tôi đã thay đổi một số tệp và add và commit chúng tôi muốn đẩy chúng vào máy chủ:

git add xxx.php
git commit -m "TEST"
git push origin master

Nhưng lỗi tôi nhận được là:

error: src refspec master does not match any.  
error: failed to push some refs to 'ssh://xxxxx.com/project.git'

1897
2017-11-15 06:09


gốc


@ Martco Đó không phải là một bản sao. Đó là một vấn đề rất cụ thể về việc đẩy chi nhánh địa phương đến một chi nhánh ở xa. Điều này là về việc khởi tạo một repo và đẩy nó lên. Chúng tạo ra cùng một lỗi, nhưng các REASONS chúng tạo ra lỗi đó và các bản sửa lỗi hoàn toàn khác nhau. Ngoài ra, sinoohe, bạn nên chấp nhận một câu trả lời. Có lẽ là người đầu tiên, nhìn thấy khi nó trả lời câu hỏi và đã giúp hơn 350 người. - tandrewnichols
Bạn đã thiết lập các lệnh cấu hình git của mình để cài đặt và cấu hình git trên toàn cầu trên máy của bạn chưa? - Igor Ganapolsky
Hy vọng bài đăng này sẽ hữu ích cho ai đó- samranga.blogspot.com/2015/07/…  Lỗi trong câu hỏi có thể xuất hiện ngay cả khi cố gắng tạo kho lưu trữ git BitBucket từ dự án đã có sẵn cục bộ - Samitha Chathuranga
Tôi đã nhận được lỗi này khi cố gắng đẩy tên chi nhánh sai. Đã giải quyết bằng git status để có được cái thích hợp. - Tom Howard
Thêm tệp readme làm việc cho tôi - lft93ryt


Các câu trả lời:


Có lẽ bạn chỉ cần cam kết. Tôi chạy vào điều này khi tôi đã làm:

mkdir repo && cd repo
git remote add origin /path/to/origin.git
git add .

Rất tiếc! Không bao giờ cam kết!

git push -u origin master
error: src refspec master does not match any.

Tất cả những gì tôi phải làm là:

git commit -m "initial commit"
git push origin master

Sự thành công!


2973
2017-09-27 16:07



Đừng chỉ làm theo bước này một cách mù quáng, hãy nhìn vào những gì @Vi đã đề cập, và sau đó sửa đổi lệnh push của bạn để sửa ref. - Kumar
Tôi đã có cùng một vấn đề, chỉ cần quên cam kết trước khi đẩy. Điều này đã khắc phục được sự cố, cảm ơn! - Shimon Tolts
Lý do có thể xảy ra nhất cho lỗi này là tất cả các tệp đều không được trả lời và chưa được thêm vào. git add --all trong trường hợp bạn muốn thêm tất cả các tập tin Hoặc bạn có thể thêm các tập tin có chọn lọc. Sau đó git commit -m "Initial comment", git push origin master. Điều này chắc chắn sẽ làm việc. - Bhanu Pratap Singh
Khắc phục sự cố khác nhau, nhưng không phải là câu trả lời cho Điều này câu hỏi thực tế. - Michael Durrant
git commit -m 'initial commit' nên được trích dẫn kép. 'git commit -m "initial commit", ít nhất là trên cửa sổ. - Sung Kim


  1. Thử git show-ref để xem bạn có ref gì. lanhung refs/heads/master?

  2. Bạn co thể thử git push origin HEAD:master như giải pháp độc lập hơn tham chiếu địa phương.


564
2017-11-15 11:24



chi nhánh chính của tôi không nằm trên đầu trang của các cam kết! vì vậy tôi tạo ra một chi nhánh mà nó đã được ở phần cuối của tất cả các chi nhánh và tôi đã đẩy chúng vào máy chủ: - sinoohe
git checkout -b testbranch; git push origin testbranch: master - sinoohe
git show-ref cho thấy chi nhánh của tôi; các git push origin HEAD:<branch> đã làm cho tôi. - Glen Solsberry
Bạn vừa cứu tôi Vi. Cảm ơn bạn vì git push origin HEAD:master. Nhưng tại sao một cái gì đó như git push --force origin master không hoạt động? - shkschneider
@ gms8994 - bạn đã đúng. nếu ai đó tạo ra một chi nhánh như là một thứ đầu tiên thay vì đẩy vào chủ, giống nhau unfriendly lỗi xuất hiện. sử dụng git push origin <branch> thay vì master trong trường hợp bạn cố gắng git checkout -b <branch> trước bất kỳ cú thúc FIRST nào sau lần đầu tiên git remote add origin <url> - asyncwait


Tôi cũng đã có một lỗi tương tự sau khi xóa tất cả các tập tin trong máy tính địa phương của tôi và tôi phải dọn dẹp tất cả các tập tin trên kho lưu trữ.

Thông báo lỗi của tôi là một cái gì đó như thế này:

error: src refspec master does not match any.
error: failed to push some refs to 'git@github ... .git'

và nó được giải quyết bằng cách thực hiện các lệnh sau:

touch README
git add README

git add (all other files)
git commit -m 'reinitialized files'
git push origin master --force  # <- caution, --force can delete others work.

Đó là nó, hy vọng điều này sẽ giúp.


187
2018-01-04 17:03



Các câu trả lời khác không giải quyết được vấn đề tôi gặp phải (ví dụ, tôi đã cam kết và vẫn có lỗi này), nhưng làm một git push origin BRANCH --force đã làm việc. Cảm ơn bạn! - Lemmings19
Xem câu trả lời trước đó. Tôi nghi ngờ rằng bạn cần thêm một tệp vì git sẽ không theo dõi các thư mục trống.
push --force cũng có thể hoàn toàn thổi bay công việc khó khăn của đồng nghiệp. Đã thêm cảnh báo bởi nó. - Michael Durrant
Điều này giải quyết được vấn đề của tôi. Tôi nghĩ rằng git add đã làm điều đó. Trong khi đẩy những thứ lúc đầu git không nhận ra mọi thứ, có thể đó là lý do tại sao tôi có vấn đề. lệnh git add đã giải quyết được vấn đề của tôi. sau đó tôi đã có thể đẩy mà không cần --force. Cảm ơn Aryo - Anandaraja_Srinivasan
Điều này giải quyết có vẻ như git wont đẩy mà không có 'README' - Jimmy Obonyo Abor


  1. Thay đổi của tôi đã được cam kết
  2. Lực đẩy vẫn cho tôi lỗi tương tự.

Vì vậy, tôi đã cố gắng Giải pháp của Vi:

git push origin HEAD:<remoteBranch> 

Điều này làm việc cho tôi.


145
2018-05-06 17:27



Cuối cùng tôi phát hiện ra rằng đó là vì tôi đã viết sai tên chi nhánh. Tôi đã đẩy chi nhánh A thành công để xuất phát với một chi nhánh có tên B với git push origin HEAD:Bnhưng tôi vẫn gặp lỗi tương tự mỗi lần tôi đẩy git push origin trên chi nhánh A. - Yi H.
@ YiHuang, ugh cảm ơn, tôi đã kiểm tra tên chi nhánh của tôi trước đây, và sau đó tôi kiểm tra lại nó vì nhận xét của bạn - có cùng một vấn đề, viết sai chính tả nó. - lakesare
@ YiH.i đã chắc chắn rằng tên chi nhánh của tôi là chính xác nhưng tôi chỉ kiểm tra lại nó sau khi đọc bình luận của bạn và xấu của tôi - có cùng một vấn đề. - Null Pointer


Đối với tôi, tôi phải đảm bảo khóa công khai được cấu hình đúng trong máy chủ (được thêm vào ~ / .ssh / authorized_keys) và trong github / bitbucket (được thêm vào các khóa SSH của tôi trên github hoặc bitbucket) - chúng cần khớp.

Sau đó:

git add --all :/

git commit -am 'message'

git push -u origin master

Làm việc cho tôi cuối cùng.


96
2017-09-02 01:56



Một vấn đề hợp lệ nhưng khác nhau. -u đã giúp ở đây. - Michael Durrant
Cảm ơn bạn! đây là giải pháp duy nhất giúp tôi - Matan Dahan
Cảm ơn bạn cứu tôi - core114
Giải pháp này đã giải quyết được vấn đề. Cảm ơn :) - Sahil Gupta


Thiếu hoặc bỏ qua git add . hoặc là git commit có thể gây ra lỗi này:

git push -u origin master
Username for 'https://github.com': yourusername
Password for 'https://yourusername@github.com': 
error: src refspec master does not match any.
error: failed to push some refs to 'https://github.com/yourusername/foobar.git'

Để khắc phục, hãy khởi động lại và thực hiện theo trình tự thích hợp:

git init
git add .
git commit -m 'message'
git *create remote
git push -u origin master

62
2017-11-03 20:30



git: '* create' không phải là lệnh git. Xem 'git --help'. - sam
đúng vậy, kết thúc kinh doanh cụ thể hơn git remote add __REMOTE_NAME__ __URL_OR_SSH__và phía trên tên từ xa là "origin" - aug2uag
Họ thêm vào và cam kết trong câu hỏi của họ để không phải là vấn đề mặc dù điều này giúp người khác. - Michael Durrant
Câu trả lời này đã làm việc tuy nhiên vì -u tùy chọn đã được sử dụng ở đây. - Michael Durrant


Tôi thấy điều này xảy ra trong một kho lưu trữ hoàn toàn mới sau khi git chỉ thêm một thư mục.

Ngay sau khi tôi thêm tệp (ví dụ: README), git push đã hoạt động rất tốt.


56
2017-09-25 01:44



Điều này có thể hoạt động vì git không thực sự theo dõi các thư mục, chỉ các tệp. Vì vậy, nếu một thư mục trống, git sẽ không thực sự thêm nó.
OP đã thêm một tệp (xx.php) nên đây không phải là vấn đề trong trường hợp này mặc dù trong các trường hợp khác, đây có thể là một vấn đề và thêm một tệp giải pháp cái đó vấn đề. - Michael Durrant
Một giải pháp đơn giản như vậy cho một vấn đề khó chịu. Tôi đã thử nghiệm việc tạo ra và clonining của repos và tạo ra các thư mục trống không phải là tập tin. - James Wierzba
Đây là những gì làm việc cho tôi cho một repo hoàn toàn mới - Anupam


Để khắc phục, hãy khởi tạo lại và thực hiện theo trình tự mã thích hợp:

git init
git add .
git commit -m 'message'
git push -u origin master

56
2018-01-12 17:30



Các -u tùy chọn thực hiện công việc này. - Michael Durrant
Cảm ơn Pratik. :) - Vikas Gupta


git push -u origin master lỗi: src refspec master không khớp với bất kỳ lỗi nào.

Cho rằng bạn cần phải nhập thông điệp cam kết như sau và sau đó đẩy mã

git commit -m "commit ban đầu"

git push origin master

Đã thúc đẩy thành công để làm chủ


55
2017-08-09 09:22