Saya memiliki cabang repositori publik dan saya mencoba memperbarui cabang saya dengan komit saat ini dari repositori asli:
$ git fetch <remote>
remote: Counting objects: 24, done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 20 (delta 12), reused 0 (delta 0)
Unpacking objects: 100% (20/20), done.
From git://github.com/path_to/repo
9b70165..22127d0 master -> $/master
$ git rebase <remote>
fatal: Needed a single revision
invalid upstream <remote>
Di <remote>
tempat nama remote saya dan sebenarnya bukan nama remote saya. Dokumentasi tentang kesalahan ini tampaknya agak longgar.
Jawaban:
Anda harus memberikan nama cabang (atau pengidentifikasi komit lainnya), bukan nama remote
git rebase
.Misalnya:
tidak:
Catatan, meskipun
origin
harus menyelesaikan reforigin/HEAD
ketika digunakan sebagai argumen di mana referensi komit diperlukan, tampaknya tidak setiap repositori mendapatkan referensi seperti itu sehingga mungkin tidak (dan dalam kasus Anda tidak) berfungsi. Membayar untuk menjadi eksplisit.sumber
origin
dalam konteks referensi ditafsirkan sebagaiorigin/HEAD
. Saya telah melihat repositori akhirnya tidak tahu apaorigin/HEAD
itu, ...git rebase origin
repositori tes (di manaorigin
ada aHEAD
) dan saya mendapatkan kesalahan OP. Dokumentasi untuk rebase tidak mengatakan bahwa nama jarak jauh valid untuk<upstream>
.git rev-parse origin
berfungsi, seperti halnyagit rebase origin
dalam klon git.git saya (dalam kasus rebase terkini, maju cepat, dan true, termasuk interaktif).git describe
AndaHEAD
?Pastikan Anda mengeja nama cabang dengan benar . Saya rebasing cabang cerita (yaitu
branch_name
) dan lupa bagian cerita. (Yaitustory/branch_name
) dan kemudian git ludah kesalahan ini pada saya yang tidak masuk akal dalam konteks ini.sumber
featureName
ketika cabang sebenarnya bernamafeatures/featureName
Saya mengalami ini dan menyadari saya tidak mengambil hulu sebelum mencoba untuk rebase. Yang saya butuhkan adalah untuk
git fetch upstream
sumber
Masalahnya adalah Anda bercabang dari .... di mana Anda mencoba untuk rebase. Anda tidak dapat rebase ke cabang yang tidak mengandung komit tempat cabang Anda saat ini dibuat.
Saya mendapatkan ini ketika saya pertama kali rebased cabang lokal X ke yang didorong Y, kemudian mencoba untuk rebase cabang (pertama kali dibuat pada X) ke yang didorong Y.
Dipecahkan untuk saya dengan rebasing ke X.
Saya tidak punya masalah rebasing ke cabang-cabang terpencil (bahkan berpotensi tidak diperiksa), asalkan cabang saya saat ini berasal dari leluhur cabang itu.
sumber
--onto
. Semuanya turun dari beberapa nenek moyang (untuk repositori normal), sehingga tidak masalah. Saya mendapatkan kesalahan ini karena mencoba untuk rebasefoo
ketika saya belum membuat cabang untuk dilacakorigin/foo
.Untuk jarak jauh
origin
:sumber
git submodule deinit --all -f
bekerja untukku.sumber