Saya memigrasi repo saya dari Bitbucket atau Github. Saya tidak berpikir ini penting tetapi itu satu-satunya hal yang berbeda ... Untuk sementara saya mengatur dua remote:
origin: bitbucket
github: github
Kemudian saya menghapus keduanya dan menunjukkan asal ke github:
git remote remove origin
git remote remove github
git remote add origin https://github....
Uji coba cabang pengembangan:
git push origin develop
Semuanya terbaru, oke, bagus.
Buat cabang baru untuk beberapa pekerjaan seperti biasa:
git checkout -b Feature/Name
Perbarui satu atau dua file. Mencoba mendorong ke jarak jauh:
git push origin Feature/Name
Ini menghasilkan kesalahan:
fatal: Fitur / Nama tidak dapat diselesaikan ke cabang
Cari secara online untuk masalah ini, temukan beberapa hal tentang memastikan HEAD benar, yang lain tentang memastikan saya mendapatkan kasus nama cabang saya dengan benar (meskipun, pada titik ini cabang belum ada di remote). Tidak dapat menyelesaikan.
Jalankan perintah ini:
git push --all -u
Ini membuat Feature/Name
cabang saya ke github, tetapi masih melihat perilaku yang sama seperti sebelumnya:
git push origin develop
git push origin Feature/Name
Pekerjaan pertama, yang kedua menampilkan kesalahan yang sama.
Saya tidak tahu mengapa saya mendapatkan kesalahan ini. Ada ide?
Feature/Name
? Apakah Anda yakinFeature/Name
ada dan itu adalah cabang yang diperiksa? Periksa dengangit branch
.git branch
untuk memverifikasiFeature/Name
keberadaan secara lokal? Jangan percaya GUI atau IDE. Juga, apakah kasusnya benar?git push origin Feature/Name:Feature/Name
?git push --all -u
saya memiliki cabang baru di github, tetapi masih tidak bisa mendorong dari lokal, bukan? Inilah yang terjadi dengan itu ... nama cabang sebenarnyaSQLMigration/ReportFixes
dan apa yang ada di githubSqlMigration/ReportFixes
. Jadi, sekarang saya bisagit push origin SqlMigration/ReportFixes
- kenapa github mengganti casing untuk saya? Agh.Jawaban:
Saya mengalami masalah ini juga, dan itu membuat saya gila. Saya memiliki sesuatu seperti
feature/name
tetapigit branch -a
menunjukkan kepada sayaFEATURE/name
. Mengganti nama cabang, menghapus dan membuatnya kembali, tidak ada yang berhasil. Apa yang akhirnya memperbaikinya:Pergi ke
.git/refs/heads
Anda akan melihat
FEATURE
folder. Ubah namanya menjadifeature
.sumber
Berdasarkan pengujian saya sendiri dan komentar OP , saya pikir pada titik tertentu mereka melakukan kesalahan pada casing nama cabang.
Pertama, saya yakin OP ada pada sistem operasi case insensitive seperti OS X atau Windows. Kemudian mereka melakukan sesuatu seperti ini ...
Perhatikan perbedaan casing. Perhatikan juga kesalahannya sangat berbeda dengan jika Anda hanya salah ketik nama.
Karena Github menggunakan sistem berkas untuk menyimpan nama cabang, Github mencoba untuk membukanya
.git/refs/heads/SqlMigration/ReportFixes
. Karena filesystem peka huruf besar kecil, maka ia berhasil dibuka.git/refs/heads/SqlMigration/ReportFixes
tetapi menjadi bingung ketika mencoba membandingkan nama cabang secara case-sensitive dan mereka tidak cocok.Bagaimana mereka masuk ke negara bagian di mana cabang lokal berada
SQLMigration/ReportFixes
dan cabang jarak jauhSqlMigration/ReportFixes
saya tidak yakin. Saya tidak percaya Github mengacaukan nama cabang jarak jauh. Penjelasan paling sederhana adalah orang lain dengan akses push mengubah nama cabang jarak jauh. Jika tidak, pada titik tertentu mereka melakukan sesuatu yang berhasil membuat remote dengan kesalahan ketik. Jika mereka memeriksa riwayat shell mereka, mungkin denganhistory | grep -i sqlmigration/reportfixes
mereka mungkin dapat menemukan perintah di mana mereka salah mengetik casing.sumber
Git akan membiarkan Anda memeriksa cabang saat ini dengan casing yang berbeda, dan itu akan gagal menemukan referensi di remote.
Baru saja menemukan cara yang sulit.
sumber
> git branch
dan memverifikasi bahwa cabang Anda memiliki * di sebelahnya.Hal serupa terjadi pada saya. Saya membuat cabang yang disebut sesuatu seperti "Feat / name". Saya mencoba mendorongnya menggunakan:
Saya mendapat kesalahan fatal yang sama seperti Anda:
Untuk mengatasinya saya membuat cabang baru karena saya hanya memiliki sedikit file yang terkena dampak. Kemudian saya mendaftarkan cabang saya untuk menghapus yang salah dan itu ditampilkan tanpa batas:
Saya telah menggunakan topi sebelumnya tetapi tidak pernah menggunakan karakter pertama. Sepertinya git tidak menyukainya ...
sumber
Ini peka huruf besar / kecil, pastikan saja yang dibuat cabang dan dorong ke cabang keduanya dalam modal yang sama.
Contoh:
SALAH cara melakukannya:
Cara melakukan yang BENAR :
sumber
Mungkin Anda lupa menjalankan git fetch? itu diperlukan untuk mengambil data dari repo jarak jauh! Coba lari
git fetch remote/branch
sumber
Untuk kasus saya, saya dulu memiliki folder cabang (atau apapun namanya) dengan huruf kapital, kemudian saya membuat yang baru dengan perbedaan casing (huruf kecil) tetapi git sebenarnya membuat cabang dengan huruf kapital.
Saya telah membuat cabang seperti
feature-ABC/branch1
sebelumnya dan mendorongnya. Kemudian saya membuat cabangfeature-abc/branch2
(perhatikan ABC huruf kecil), dan mencoba mendorongnya ke penggunaan jarak jauhgit push --set-upstream origin feature-abc/branch2
dan mendapatkan kesalahan 'tidak dapat diselesaikan ke cabang'. Jadi sayagit branch
dan melihat bahwa itu benar-benar dibuat,feature-ABC/branch2
bukanfeature-abc/branch1
untuk saya. Saya checkout lagi dengangit checkout feature-ABC/feature2
dan mendorongnya menggunakan huruf besar (feature-ABC/feature2
) untuk menyelesaikannya.sumber
Saya menghadapi masalah yang sama yang karena pergi ke cabang dengan casing yang salah. git biarkan saya beralih ke cabang dengan casing yang salah,
feature/Name
bukanfeature/name
. Menemukan solusi yang lebih mudah daripada yang tercantum di atas hanya:git checkout master (or develop)
git checkout feature/name
<dengan casing yang benargit push
sumber
Saya menyelesaikan ini di Windows 10 dengan menggunakan cmd, bukan GitBash .
Ini ada hubungannya dengan kasus karakter dan bagaimana git dan baris perintah menanganinya.
sumber
Anda mungkin telah membuat cabang yang serupa tetapi berbeda dalam hal case-sensitive, maka Anda harus menjalankan:
git branch -D <name-of-different-case-branch>
lalu coba dorong lagi.
sumber
Jawaban @Ty Le yang sedikit diubah:
tidak ada perubahan dalam file yang diperlukan untuk saya - Saya memiliki cabang bernama 'Fitur / ...' dan saat mendorong ke atas, saya mengubah judul menjadi 'fitur / ...' (kasus huruf pertama diubah ke yang lebih rendah ).
sumber
Saya baru saja mengalami masalah ini juga dan cabang normal saya dimulai
pb-3.1-12345/namebranch
tetapi saya tidak sengaja menggunakan huruf besar pada 2 huruf pertamaPB-3.1/12345/namebranch
. Setelah mengganti nama cabang untuk menggunakan huruf kecil, saya bisa membuat cabang.sumber
bagi saya, saya menamai cabang sebagai
yang harus saya lakukan adalah saat menggunakan
untuk menulis
seperti yang saya biasa membuat cabang menggunakan huruf kecil r di rel.
jadi, apa yang menyebabkan masalah ini?
ketika saya membuat daftar
.git/refs/heads
konten yang saya temukantapi tidak
Relx.x
!dan di dalamnya
bug
dan di dalambug
nama cabang saya.Jadi, git coba buat dir dengan nama yang sama tetapi huruf kapital yang berbeda
tetapi sistem tidak peka huruf besar / kecil.
Itulah yang menyebabkan masalah ini!
sumber
Punya masalah yang sama dengan casing yang berbeda.
Apakah checkout untuk pengembangan (atau master) kemudian mengubah nama (nama yang salah) menjadi sesuatu yang lain seperti test.
lalu ubah nama kembali ke nama yang benar
lalu checkout ke cabang nama kanan
kemudian bekerja untuk mendorong ke cabang jarak jauh
sumber
Bagi saya, masalahnya adalah saya memiliki git dan sistem file macOS saya diatur ke dua sensitivitas huruf yang berbeda. Mac saya diformat APFS / Is Case-Sensitive: TIDAK tetapi saya telah membalik pengaturan git saya di beberapa titik mencoba mengatasi masalah aneh dengan penamaan aset gambar Xcode jadi git config --global core.ignorecase false . Dengan membaliknya kembali menyelaraskan pengaturan dan membuat ulang cabang dan mendorong saya kembali ke jalurnya.
git config --global core.ignorecase true
Kredit: https://www.hanselman.com/blog/GitIsCasesensitiveAndYourFilesystemMayNotBeWeirdFolderMergingOnWindows.aspx
sumber
Saya memiliki masalah yang sama tetapi terselesaikan. Saya menyadari nama cabang peka huruf besar / kecil. Cabang utama di GitHub adalah 'master', sedangkan di perintah gitbash saya adalah 'Master'. Saya mengganti nama Master di repositori lokal menjadi master dan berhasil! 😀😀
sumber
Saya mengalami masalah yang sama dan memperhatikan bahwa saya telah mencampurkan casing saat memeriksa cabang. Saya check out dan
branchName
bukannyaBranchName
dan ketika saya mencoba mendorong ke remote, saya mendapat kesalahan yang sama.Cara mengatasinya:
Dengan mengatur upstream ke nama yang benar, cabang yang benar telah diperbarui di github dan saya kemudian dapat memeriksa nama cabang yang benar dengan
Dan itu harus up to date dengan dorongan terakhir Anda.
sumber
Jika Anda berada di cabang lokal, bisa mengganti nama cabang "Fitur / Nama" menjadi "fitur / Nama"
git -m feature/Name
Jika Anda mengalami masalah untuk melakukan
git push
pembayaran di cabang lain (ex develop) dan kembali ke cabang yang diganti namanyagit checkout feature/Name
dan coba lagi
git push
sumber