Dapatkah saya memberitahu git untuk mengabaikan file yang dimodifikasi (dihapus) tetapi tidak boleh dilakukan?
Situasinya adalah saya memiliki subdirektori dalam repo yang berisi hal-hal yang saya tidak tertarik sama sekali, jadi saya menghapusnya untuk mencegahnya muncul dalam pelengkapan otomatis dan sejenisnya (dalam IDE).
Tetapi sekarang, jika saya menambahkan folder itu ke .gitignore, tidak ada yang berubah, semua hal ditampilkan sebagai dihapus oleh status git.
Apakah ada cara untuk membuat git mengabaikannya?
(Atau, karena saya menggunakan git-svn, dapatkah saya melakukan perubahan pada git lokal dan memastikannya tidak diteruskan ke repo svn?)
Jawaban:
lihat halaman manual git-update-index dan bit --assume-tidak berubah dan terkait.
ketika saya memiliki masalah Anda, saya melakukan ini
atau file tertentu
sumber
git update-index --no-assume-unchanged config/database.yml
--assume-unchanged
.Opsi yang lebih baru dan lebih baik adalah
git update-index --skip-worktree
yang tidak akan hilang pada hard reset atau perubahan baru dari tarikan.Lihat halaman manual di http://schacon.github.com/git/git-update-index.html
Dan perbandingannya di http://fallengamer.livejournal.com/93321.html
sumber
skip-worktree
, menemukan file-file ini agak rumit. Satu-satunya cara saya tahu adalahgit ls-files -v |grep -v '^H'
. Juga, banyak alat GUI tidak tahu tentang fitur ini, dan dapat menghasilkan kesalahan lucu jika misalnyacheckout
gagal karena file modifikasi "tersembunyi".Gunakan kode ini
sumber
File yang dilacak tidak dapat diabaikan, jadi Anda harus menghapusnya dari indeks Anda terlebih dahulu. Tambahkan
.gitignore
yang mengabaikan direktori yang tidak Anda inginkan, lalu hapus direktori-direktori itu, dan hapus semua orang yang tercerai beraigit rm --cached
.sumber
Apa yang biasanya saya lakukan adalah
sumber