Saya mengalami masalah yang sama dengan OP pada posting ini , tetapi saya tidak mengerti jawaban yang ditandai sebagai benar (saya tidak melihat bahwa itu menjelaskan bagaimana cara memperbaiki situasi)
Saya melakukan ini dan mendapatkan kesalahan ini:
$ git update-index --assume-unchanged web.config
fatal: Unable to mark file web.config
File IS ditambahkan ke repositori
TIDAK di
.git/info/exclude
Ini BUKAN di
.gitignore
(itu, tapi saya mengambilnya, lalu memaksa web.config untuk ditambahkan menggunakangit add -f web.config
, berkomitmen, dan mendorong perubahan itu ke repo)Ketika saya melakukan Git ls-file -o itu TIDAK ada di sana
Jadi apa yang bisa saya lakukan untuk memperbaikinya?
git ls-files -o
. Jika demikian, itu tidak ada dalam repo.Jawaban:
Saya mengalami masalah yang sama dengan Anda, dan telah mengikuti empat langkah yang sama seperti yang Anda sebutkan di atas, dan memiliki hasil yang sama. Ini termasuk fakta bahwa file saya terdaftar saat menjalankan
git ls-files -o
. Namun dalam kasus saya, saya juga mencoba mengeksekusigit update-index --assume-unchanged
terhadap file yang tidak terdaftar ketika mengeksekusils-files -o
, dan saya masih menerima kesalahan yang sama "fatal: Unable to mark file
".Saya pikir mungkin itu adalah bug, dan mengunduh versi terbaru git, tetapi ini tidak membantu.
Yang akhirnya saya sadari adalah bahwa perintah ini peka terhadap huruf besar-kecil! Ini termasuk path lengkap dan nama file. Setelah memperbarui jalur ke direktori sehingga path lengkap ditentukan dengan casing yang tepat, perintah dijalankan dengan benar.
Perhatikan bahwa ini dengan Git untuk Windows, jadi hasil Anda mungkin berbeda dengan platform lain.
sumber
Saya mengalami masalah yang sama pada Mac. Sensitivitas case bukan masalah bagi saya - masalahnya adalah saya harus mereset git saya terlebih dahulu:
Masalah:
Larutan:
sumber
--skip-worktree
). Saya menyingkirkan perubahan lokal dengan menjalankangit restore .
tetapi melewatkan masih memberi kesalahan. Akhirnya saya mencoba menghapus file tersebut. Yang mengejutkan, git tidak mengatakan ada perubahan. Jadi jelas sesuatu yang funky telah terjadi sejak git benar-benar melacaknya dan saya pasti menghapusnya dan jelas tidak mengatakan bahwa itu adalah perubahan.Dalam kasus saya, pohon yang saya tandai adalah direktori, dan bukan file seperti dalam kasus Anda, dan saya kehilangan garis miring di depan namanya.
Salah -
Benar -
Perhatikan garis miring (/) pada akhirnya.
sumber
fatal: Tidak dapat menandai Pelokalan file / el-GR.js
Yang dapat Anda lakukan adalah:
$git update-index --assume-unchanged <file name>
Ini membantu saya! :)
sumber
$ git update-index --assume-unchanged ./.idea/vcs.xml fatal: Unable to mark file .idea/vcs.xml
$ cd .idea
git update-index --assume-unchanged .
Bekerja, terima kasih!Jika jalur Anda memiliki spasi, Anda mungkin mendapatkan kesalahan ini meskipun casingnya benar.
Ini menghasilkan kesalahan "fatal":
Untuk memperbaikinya, cukup tambahkan kutipan di sekitar jalan.
sumber
Masalah saya adalah, bahwa saya mencoba perintah dengan * wildcard dengan asumsi itu akan bersifat rekursif, tetapi ternyata tidak.
Jadi yang saya lakukan adalah
mengeksekusi
bekerja untuk saya saat itu dan tidak menghasilkan OP dan masalah saya.
sumber
Saya mengalami masalah ini ketika saya mencoba untuk membuka file * .orig.
Inilah yang saya lakukan untuk melepaskan mereka:
jika itu tidak berhasil:
sumber
Pastikan file ditambahkan ke git repo, jika tidak tambahkan file dalam git repo dan kemudian coba itu akan berhasil.
sumber
--assume-unchanged
adalah tentang sistem file yang lambat, dan pengguna berjanji bahwa Git tidak perlu memeriksa file ini, karena Git dapat menganggapnya tidak berubah. Tetapi beberapa perintah masih melakukan pengecekan dan menghasilkan 'kejutan'!Jangan gunakan pada file yang berubah.
Maaf menjadi pembawa berita itu (saya memiliki patch dalam proses untuk mengubah dokumentasi itu).
sumber
git rm --cached filename
akan menghapus file ketika orang lain menarikDalam kasus saya, saya mencoba menggunakan salah satu metode di atas, tetapi tidak berhasil.
Setelah banyak upaya, saya hanya berpikir untuk menambahkan file saya ke indeks melalui.
Git menolak tindakan ini tetapi dia menyarankan saya untuk melakukannya dengan paksa.
Dan itu berhasil bagi saya.
sumber
Pastikan Anda memiliki "web.config" yang masuk.
Jika tidak, Anda akan mendapatkan pesan kesalahan ini.
sumber
Mungkin bermanfaat bagi seseorang. Saya memiliki masalah yang sama dan tidak ada masalah sintaksis, tidak ada nama dengan spasi, tidak ada masalah jalur, dan perintah git reset tidak bekerja. Saya melakukan dari folder di dalam apache www dan layanan apache dihentikan. Mulai lagi layanan apache dan kesalahannya hilang
sumber
Salah satu kesalahan umum dalam menggunakan perintah ini adalah mencoba mengasumsikan file yang tidak terlacak atau sudah diabaikan oleh git.
Pastikan terlebih dahulu bahwa file dilacak dengan menjalankan
Jika tidak menunjukkan file Anda, maka Anda perlu menambahkannya terlebih dahulu:
Jika ini menunjukkan file Anda, atau Anda telah menambahkan file itu ke git, maka Anda seharusnya dapat menjalankan perintah git dengan asumsi:
atau untuk folder
Anda dapat memeriksa apakah file Anda dianggap diabaikan dengan menjalankan
Karakter S mewakili file yang dilewati.
sumber
Untuk semua pengunjung di masa depan. Tidak satu pun di atas yang menyelesaikan masalah saya. Apa yang saya sadari adalah
.gitignore
file tersebut harus diletakkan di direktori yang benar. Dalam kasus saya, setelah saya pindah.gitignore
ke direktori root aplikasi, masalahnya teratasi.sumber
Periksa apakah file yang akan ditandai ada dan ejaan dengan benar, terutama path file dan pemisah file. Pemisah file sistem windows dan sistem linux berada di arah yang berbeda.
sumber
Saya menemukan bahwa kadang-kadang ini tidak berhasil karena Anda sudah mengkomit file ke .gitignore Anda dan mendorong atau menarik. Anda hanya perlu melakukan push dan file Anda harus diabaikan pada komit berikutnya bahkan ketika Anda memodifikasi file secara lokal.
sumber
Saya memiliki masalah yang sama dengan cygwin di windows. Memberikan path file lengkap
sumber