Masalah saya terkait dengan kesalahan Fatal Git saat berpindah cabang .
Saya mencoba mengambil cabang jauh dengan perintah
git checkout -b local-name origin/remote-name
tapi saya mendapatkan pesan kesalahan ini:
fatal: git checkout: jalur pembaruan tidak kompatibel dengan beralih cabang.
Apakah Anda bermaksud untuk checkout 'asal / nama-jauh' yang tidak dapat diselesaikan sebagai komit?
Jika saya secara manual membuat cabang dan kemudian menarik cabang jarak jauh, itu berfungsi, sama seperti membuat klon baru dan memeriksa cabang keluar.
Mengapa itu tidak bekerja di repositori tempat saya bekerja?
Jawaban:
Saya percaya ini terjadi ketika Anda mencoba untuk checkout cabang jarak jauh yang belum diketahui oleh git repo lokal Anda. Mencoba:
Jika cabang jarak jauh yang ingin Anda checkout ada di bawah "Cabang jarak jauh baru" dan bukan "Cabang jarak jauh terlacak" maka Anda harus mengambilnya terlebih dahulu:
Sekarang seharusnya berfungsi:
sumber
git fetch
akan mendapatkan semua cabang dari semua repo jarak jauh.git remote update
sebelum mengambil Anda akan mengambil remote itu. Kalau tidak, Anda mendapatkan pesan sepertiDid you intend to checkout 'upstream-repo/master' which can not be resolved as commit?
Tolong tambahkan ini ke jawaban dan hemat orang berjam-jam membaca jawaban yang sama yang hanya bekerja untuk asal.Sintaks alternatif,
sumber
--depth
kualifikasi untuk klon asli mungkin salah di sini. Saya berhasil dengangit fetch remote_branch_name:local_branch_name
tetapi semua saran lainnya gagal.Setelah mencoba sebagian besar dari apa yang bisa saya baca di utas ini tanpa hasil, saya menemukan yang satu ini: Cabang yang jauh tidak muncul di "git branch -r"
Ternyata file .git / config saya salah. Setelah melakukan perbaikan sederhana semua cabang muncul.
Pergi dari
untuk
Lakukan triknya
sumber
Tidak yakin apakah ini bermanfaat atau persis relevan dengan pertanyaan Anda, tetapi jika Anda mencoba mengambil dan checkout hanya satu cabang dari repositori jarak jauh, maka perintah git berikut akan melakukan trik:
sumber
tidak satu pun di atas bekerja untuk saya. Situasi saya sedikit berbeda, cabang jarak jauh saya tidak asal . tetapi dalam repositori yang berbeda.
tip: jika Anda tidak melihat cabang jarak jauh di output berikut
git branch -v -a
tidak ada cara untuk memeriksanya.Dikonfirmasi bekerja pada 1.7.5.4
sumber
git branch -v -a
: Saya memiliki kendali jarak jauh yang salah yang mengatakanfetch = +refs/heads/*:refs/remotes/master/*
meskipun jarak itu dipanggilupstream
.Bagi saya yang berhasil adalah:
Yang menarik semua referensi ke mesin Anda untuk semua cabang di remote. Lalu aku bisa melakukannya
dan itu bekerja dengan sempurna. Mirip dengan jawaban terpilih teratas, tetapi sedikit lebih sederhana.
sumber
Saya curiga tidak ada cabang jarak jauh bernama remote-name, tetapi Anda tidak sengaja membuat cabang lokal bernama origin / remote-name.
Apakah mungkin Anda pada suatu saat mengetik:
Jadi membuat cabang lokal bernama asal / nama-jauh? Ketikkan perintah ini:
Anda akan melihat:
yang berarti itu benar-benar cabang lokal yang salah nama, atau
yang berarti itu benar-benar cabang jarak jauh.
sumber
Ini tidak terlalu intuitif tetapi ini bekerja dengan baik untuk saya ...
LALU jalankan perintah git branch --track ...
sumber
Bagi saya, saya memiliki kesalahan ketik dan cabang jarak jauh saya tidak ada
Gunakan
git branch -a
untuk membuat daftar cabang jarak jauhsumber
Bisakah masalah Anda ditautkan dengan pertanyaan SO "masalah checkout" lainnya ini ?
yaitu: masalah yang terkait dengan:
git checkout -b [<new_branch>] [<start_point>]
dengan[<start_point>]
merujuk pada nama komit untuk memulai cabang baru, dan'origin/remote-name'
bukan itu.(padahal
git branch
memang mendukung start_point menjadi nama cabang jarak jauh)Catatan: apa yang dikatakan skrip checkout.sh adalah:
Ini seperti sintaks git checkout -b [] [remote_branch_name] mengubah nama cabang dan mengatur ulang titik awal baru dari cabang baru, yang dianggap tidak kompatibel.
sumber
Setelah mengambil jutaan kali masih menambahkan remote tidak muncul, meskipun gumpalan berada di kolam renang. Ternyata opsi --tags tidak boleh diberikan
git remote add
untuk alasan apa pun. Anda dapat menghapusnya secara manual dari .git / config untuk membuat git fetch buat referensi.sumber