git menarik dari jarak jauh tetapi tidak ada referensi yang diambil?

69

Saya memiliki mirror git pada disk saya dan ketika saya ingin memperbarui repo saya dengan git pull itu memberi saya pesan kesalahan:

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

Itu juga memberi saya:

  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

Ketika saya menjalankan make menuconfig, itu memberi saya Linux versi 3.5.7? Apa artinya ini? Bagaimana saya bisa memperbarui repo saya?

Gigameg
sumber

Jawaban:

58

Periksa cabang Anda berada di ( git branch), periksa konfigurasi untuk cabang itu (dalam .../.git/config), Anda mungkin berada di cabang yang salah atau konfigurasi Anda untuk itu memberitahu untuk bergabung dengan cabang jauh (sekarang?) Tidak ada.

vonbrand
sumber
22
Untuk menghapus referensi cabang jarak jauh yang tidak ada di repositori lokal Anda, gunakan git remote prune origin.
jevon
7
Cara lain untuk "memeriksa konfigurasi" untuk cabang adalah: git branch -vv. Itu menampilkan "remote" cabang terkait.
offby1
28

Dalam kasus saya, cabang lokal saya tidak diatur untuk melacak cabang jarak jauh. Saya harus menjalankan secara manual:

git pull origin remotebranch

Kemudian lain kali Anda melakukan push, lakukan "git push -u" untuk mengatur pelacakan yang benar.

Mauvis Ledford
sumber
Hal yang sama berlaku ketika Anda pertama kali mengkloning repo kosong yaitu dibuat menggunakangit init --bare
Cyclonecode
10

Dalam kasus saya, cabang lokal dan cabang terpencil saya memiliki kapitalisasi berbeda.

Untuk mengatasi ini, saya menghapus cabang lokal saya $ git branch -d branch-name, kemudian memeriksa cabang jarak jauh lagi menggunakan $ git fetchdan $ git checkout Branch-name.

Lebih tepatnya
sumber
Bersih, sederhana, dan berfungsi dengan baik. Terima kasih.
Balasubramani M
Saya mendapat kesalahan ini di baris cmd. Mencoba SmartGit dengan rebase dan berhasil melewatinya.
P.Brian.Mackey
Lakukan ini sekali alih-alih hapus cabang dan periksa kembali cabang setiap saat: Perbaiki penggunaan huruf kapital di /.git/config Anda
wz366
2

Mungkin saja orang lain di tim Anda hanya menggabungkan cabang Anda dan menghapusnya (umumnya dilakukan setelah penggabungan). Anda dapat membuat cabang pada repo dan coba lagi. Ini terjadi pada saya di perusahaan saya sesekali (default bitbucket untuk menggabungkan dan menghapus).

Scott Biggs
sumber
1

Dalam kasus saya (peringatan biasa), saya sudah memiliki cabang dengan nama yang sesuai jadi saya hanya perlu menambahkan remote = origin.git / config saya:

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

Saya memiliki kesalahan yang sama ketika kehabisan ruang disk. Setelah mengubah ukuran volume, kesalahan hilang.

Daniel Alder
sumber
0

Saya mendapatkan masalah ini karena masalah casing yang memanifestasikan dirinya pada Windows.

Konfigurasi Git saya terlihat seperti:

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

Di server, "Bug" dan "bug" ada sebagai bagian dari beberapa cabang. Windows hanya dapat menahan salah satu dari ini pada satu waktu, karena pemetaan sistem file. Oleh karena itu, saya memperbarui konfigurasi saya secara manual agar sesuai dengan versi server, yang sebenarnya memecahkan masalah tarikan:

[branch "Bug/some_branch"]
  remote = origin
  merge = refs/heads/bug/some_branch
Meringis Putus Asa
sumber
0

Jika cabang hilang,

$ 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

Kemudian checkout master atau apa pun yang Anda butuhkan

MCM
sumber