Menggunakan Git versi 2.2.0 dengan mesin game kesatuan pada OS X, dan ingin mengkomit kode saya. Saya menambahkan semuanya dan tidak mendapatkan pesan kesalahan. lalu komit -m, dan dapatkan pesan kesalahan ini:
fatal: multiple stage entries for merged file 'Assets/Prefabs/Resources'
Tidak memperhatikannya saya mendorong, itu tidak memberikan pesan kesalahan, pada kenyataannya mengatakan Everything up-to-date
Jadi saya memeriksa bitbucket (di mana repo diadakan) dan itu tidak menunjukkan komit saya. jadi saya memeriksa log lokal saya dan itu juga tidak menunjukkan komit saya.
Saya sudah mencari jawaban untuk google ... dan tidak ada. apa kesalahan ini? dan bagaimana cara memperbaikinya?
Jawaban:
Solusi pertama, yang tampaknya bekerja dengan versi terbaru dari Git (2.3 +, Q2 + 2015) disebutkan dalam hibah 's lebih up-to-date jawaban :
Hapus indeks
Tambahkan semua
Melakukan
Jawaban asli (akhir 2014)
Solusi yang biasa adalah untuk:
tambahkan perubahan dari repo pertama ke yang kedua:
Anda dapat melihat pesan kesalahan ini
read-cache.c
, dibahas di tambalan ini ("read-cache.c
: Pastikan entri yang tidak dihapus dihapus "), dan diperkenalkan di komit Git 2.2 .Karena ini sangat baru, ada kemungkinan bahwa menurunkan Git ke 2.1 akan cukup untuk tidak terpengaruh oleh tambalan itu.
The OP Daniel Toebe menambahkan di komentar :
sumber
git commit -c sha
Saya yakin saya mengalami masalah ini karena saya menambahkan dan melakukan perubahan dan kemudian menghapus file yang baru saja saya lakukan. Jika ini mirip dengan kasus Anda, saya sarankan mengikuti di bawah ini untuk menyimpan kloning ulang dan menambahkan perubahan Anda secara manual.
Saya bisa memperbaiki masalah ini dengan menghapus file .git / index di repositori saya, mirip dengan apa yang disarankan @slider (saya yakin dia salah ketik path).
Kemudian saya harus menambahkan dan melakukan perubahan lokal saya lagi
Saya kemudian bisa mendorong dari jarak jauh.
Apa indeks git dan bagaimana itu relevan?
Apa Kesepakatannya Dengan Indeks Git?
Saya percaya bahwa dengan menghapus file ini, git akan mengindeks ulang repo, membuat yang baru dan Anda siap melakukannya. Ini memecahkan masalah ini karena repositori lokal diindeks ulang tanpa file yang saya hapus yang menyebabkan semua keributan.
Sunting: Sepertinya ini terkait Mac (berdasarkan komentar) jadi jika membantu saya menggunakan OSX 10.10 dan git versi 2.3.4 diinstal melalui brew.
sumber
git add -A
git
. (Sebenarnya, saya pikir ada banyak dari mereka.) Menutup IntelliJ, menghapus indeks, dan melakukan kembali pekerjaan saya berhasil dengan baik.Untuk proyek
setelah menghapus indeks, Anda harus membuatnya kembali dengan git reset
Untuk submodule:
Buka folder proyek utama
sumber
Anda dapat menghapus file indeks Git dari proyek Anda. Di root proyek Anda, jalankan perintah berikut:
Setelah itu git berhasil.
sumber
rm: /.git/index: No such file or directory
Mac OSX Yosemite; git 2.3.4 diinstal melalui homebrewrm .git/index
di direktori git Anda).Saya mencoba solusi yang berbeda dan berfungsi untuk saya. Di bawah ini adalah opsi saya
sumber
git reset
jika tidak memberikan Andafatal: Could not reset index file to revision 'HEAD'
.Jika ini terjadi dalam submodule
File indeks terletak di dalam
.git
direktori induk :Dalam submodule, tidak ada direktori bernama
.git
(setidaknya dalam proyek yang saya kerjakan), hanya ada satu.git
file yang memberitahu Anda (dan git) di mana mencari direktori git dari proyek itu.Status Git menunjukkan perubahan yang tidak saya lakukan
Setelah menghapus file indeks, dan melakukan
git reset
, saya menemukan diri saya menghadapi banyak perubahan yang tidak dapat dijelaskan dan hard reset tidak membantu.Peringatan Anda akan kehilangan semua perubahan Anda, jadi komit dan dorong sebelum melanjutkan.
Indeks sepertinya rusak, jadi saya menghapusnya dengan perintah berikut.
sumber
Saya baru saja mendapat kesalahan ini dengan Github Desktop Client (OSX). Yang saya lakukan adalah keluar dari aplikasi dan dibuka kembali dan kemudian mulai bekerja.
sumber