Git kéo từ xa nhưng không có ref nào được lấy?


69

Tôi có một máy nhân bản git trên đĩa của mình và khi tôi muốn cập nhật repo của mình bằng git pull, nó sẽ cho tôi thông báo lỗi:

 Your configuration specifies to merge with the ref '3.5/master' from the remote, but no such ref was fetched.

Nó cũng cho tôi:

  1ce6dac..a5ab7de  3.4/bfq    -> origin/3.4/bfq
  fa52ab1..f5d387e  3.4/master -> origin/3.4/master
  398cc33..1c3000a  3.4/upstream-updates -> origin/3.4/upstream-updates
  d01630e..6b612f7  3.7/master -> origin/3.7/master
  491e78a..f49f47f  3.7/misc   -> origin/3.7/misc
  5b7be63..356d8c6  3.7/upstream-updates -> origin/3.7/upstream-updates
  636753a..027c1f3  3.8/master -> origin/3.8/master
  b8e524c..cfcf7b5  3.8/misc   -> origin/3.8/misc
  * [neuer Zweig]     3.8/upstream-updates -> origin/3.8/upstream-updates

Khi tôi chạy make menuconfig, nó cung cấp cho tôi phiên bản Linux 3.5.7? Điều đó có nghĩa là gì? Làm thế nào tôi có thể cập nhật repo của tôi?

Câu trả lời:


58

Kiểm tra nhánh bạn đang ở ( git branch), kiểm tra cấu hình cho nhánh đó (trong .../.git/config), có thể bạn đang ở sai nhánh hoặc cấu hình của bạn để nó bảo hợp với nhánh từ xa không tồn tại (bây giờ?).


22
Để loại bỏ các tham chiếu nhánh từ xa không tồn tại trong kho lưu trữ cục bộ của bạn, hãy sử dụng git remote prune origin.
jevon

7
Một cách khác để "kiểm tra cấu hình" cho một nhánh là : git branch -vv. Điều đó sẽ hiển thị "từ xa" liên kết của chi nhánh.
off1

28

Trong trường hợp của tôi, chi nhánh địa phương của tôi không được đặt để theo dõi chi nhánh từ xa. Tôi phải tự chạy:

git pull origin remotebranch

Sau đó, lần tới khi bạn thực hiện thao tác đẩy, hãy "git đẩy -u" để thiết lập theo dõi chính xác.


Điều tương tự cũng xảy ra khi lần đầu tiên bạn sao chép một repo trống tức là được tạo bằng cách sử dụnggit init --bare
Cyclonecode

10

Trong trường hợp của tôi, chi nhánh địa phương và chi nhánh từ xa của tôi có cách viết hoa khác nhau.

Để giải quyết vấn đề này, tôi đã xóa chi nhánh địa phương của mình $ git branch -d branch-name, sau đó kiểm tra lại chi nhánh từ xa bằng cách sử dụng $ git fetch$ git checkout Branch-name.


Nó sạch sẽ, đơn giản và làm việc tốt. Cảm ơn bạn.
Balasubramani M

Tôi đã nhận được lỗi này trong dòng cmd. Đã thử SmartGit với một cuộc nổi loạn và vượt qua nó.
P.Brian.Mackey

Làm điều này một lần thay vì xóa chi nhánh và kiểm tra lại chi nhánh mỗi lần: Viết hoa đúng trong /.git/config
wz366

2

Có thể người khác trong nhóm của bạn chỉ cần hợp nhất chi nhánh của bạn và xóa nó (thường được thực hiện sau khi hợp nhất). Bạn có thể tạo chi nhánh trên repo và thử lại. Điều đó xảy ra với tôi tại công ty của tôi thỉnh thoảng (bitbucket mặc định để hợp nhất và xóa).


1

Trong trường hợp của tôi (cảnh báo thông thường), tôi đã có một nhánh của tên thích hợp nên tôi chỉ phải thêm remote = originvào .git / config:

[branch "sparql"]
    merge = refs/heads/sparql
    remote = origin # <-- added


1

Tôi đã có cùng một lỗi khi hết dung lượng đĩa. Sau khi thay đổi kích thước âm lượng, lỗi đã biến mất.


0

Tôi gặp vấn đề này do một vấn đề về vỏ xuất hiện trên Windows.

Cấu hình Git của tôi trông giống như:

[branch "Bug/some_branch"]
  remote = origin
  merge = refs/heads/Bug/some_branch

Trên máy chủ, cả "Lỗi" và "lỗi" đều tồn tại như một phần của nhiều nhánh. Windows chỉ có thể giữ một trong số này tại một thời điểm, do ánh xạ hệ thống tệp. Do đó, tôi đã cập nhật thủ công cấu hình của mình để phù hợp với phiên bản máy chủ, điều này thực sự đã giải quyết được vấn đề kéo:

[branch "Bug/some_branch"]
  remote = origin
  merge = refs/heads/bug/some_branch

0

Nếu chi nhánh không còn,

$ git status
On branch blah_gone_now
Your branch is based on 'origin/1234/blah_gone_now', but the upstream is gone.
  (use "git branch --unset-upstream" to fixup)

$ git branch --unset-upstream

Sau đó kiểm tra tổng thể hoặc bất cứ điều gì bạn cần

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.