Cara anda Git mengabaikan menonton/pelacakan tertentu dir/file. anda hanya menjalankan ini:
git update-index --misalnya-tidak berubah <file>
Sekarang bagaimana anda membatalkan itu sehingga mereka menyaksikan lagi? (Let's menyebutnya un-asumsikan.)
Untuk mendapatkan undo/tampilkan dir's/file yang ditetapkan untuk menganggap-tidak berubah menjalankan ini:
git update-index --ada-misalnya-tidak berubah <file>
Untuk mendapatkan daftar dir's/berkas yang bertanggung-tidak berubah
run ini:
git ls-file -v|grep '^h'
Jika ini adalah perintah yang sering anda gunakan - anda mungkin ingin mempertimbangkan untuk memiliki sebuah alias untuk itu juga. Tambahkan ke global .gitconfig
:
`git
[alias]
menyembunyikan = update-index --misalnya-tidak berubah
unhide = update-index --ada-misalnya-tidak berubah
``
Cara mengatur alias (jika anda don't sudah tahu):
git config --configLocation alias.aliasName 'command --options'
Contoh:
git config --global alias.hide 'update-index --assume-unchanged'
git config... etc
Setelah menyimpan ini untuk anda .gitconfig
, anda dapat menjalankan cleaner perintah.
git hide myfile.ext
atau
git unhide myfile.ext
Ini git dokumentasi sangat membantu.
Sesuai komentar-komentar, ini juga membantu alias untuk mencari tahu apa file saat ini sedang tersembunyi:
`git [alias] tersembunyi = ! git ls-file -v | grep '^h' | cut-c3- ``
git update-indeks fungsi memiliki beberapa opsi yang dapat anda temukan mengetik seperti di bawah ini:
git update-index --help
Di sini anda akan menemukan berbagai pilihan - bagaimana untuk menangani dengan fungsi update-index.
[jika anda don't tahu nama file]
git update-index --really-refresh
[jika anda tahu nama file ]
git update-index --no-assume-unchanged <File>
akan mengembalikan semua file yang telah ditambahkan dalam daftar abaikan melalui.
git update-index --assume-unchanged <File>
Untuk mensintesis asli sangat baik jawaban dari @adardesign, @adswebwork dan @AnkitVishwakarma, dan komentar dari @Bdoserror, @Retsam, @seanf, dan @torek, dengan tambahan dokumentasi link dan ringkas alias...
Perintah-Perintah Dasar
Untuk reset file yang misalnya-tidak berubah kembali normal:
git update-index --no-assume-unchanged <File>
Untuk daftar file yang berasumsi-berubah:
git ls-files -v | grep '^[a-z]' | cut -c3-
Untuk reset berasumsi-file tidak berubah kembali normal:
git ls-files -v | grep '^[a-z]' | cut -c3- | xargs git update-index --no-assume-unchanged --
Catatan: perintah Ini yang telah terdaftar di tempat lain tidak muncul untuk me-reset semua berasumsi-file tidak berubah lagi (saya percaya itu digunakan untuk dan sebelumnya terdaftar sebagai solusi):
git update-index --really-refresh
Jalan pintas
Untuk membuat tugas-tugas umum mudah untuk mengeksekusi dalam git, tambahkan/perbarui berikut alias bagian ke bagian .gitconfig
untuk pengguna anda (misalnya ~/.gitconfig
pada *nix atau macOS sistem):
[alias]
hide = update-index --assume-unchanged
unhide = update-index --no-assume-unchanged
unhide-all = ! git ls-files -v | grep '^[a-z]' | cut -c3- | xargs git update-index --no-assume-unchanged --
hidden = ! git ls-files -v | grep '^[a-z]' | cut -c3-
Jika anda ingin membatalkan semua file yang diterapkan menganggap tidak berubah dengan status apapun, tidak hanya cache (git menandai mereka dengan karakter dalam kasus yang lebih rendah), anda dapat menggunakan perintah berikut:
git ls-files -v | grep '^[a-z]' | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-assume-unchanged
git ls-file -v
akan mencetak semua file dengan status merekagrep '^[a-z]'
akan menyaring file dan pilih hanya berasumsi tidak berubahcut-c 3-
akan menghapus status dan hanya meninggalkan jalan, memotong dari 3-rd karakter akhirtr '\012' '\000'
akan menggantikan end of line character (\012) untuk karakter nol (\000)xargs -0 git update-index --ada-misalnya-tidak berubah
akan melewati semua jalur dipisahkan oleh karakter nol untuk git update-index --ada-misalnya-tidak berubah
untuk membatalkanMenambah @adardesign
's jawaban, jika anda ingin me-reset semua file yang telah ditambahkan ke misalnya-tidak berubah
daftar ada-misalnya-tidak berubah
dalam satu pergi, anda dapat melakukan hal-hal berikut:
git ls-files -v | grep '^h' | sed 's/^..//' | sed 's/\ /\\ /g' | xargs -I FILE git update-index --no-assume-unchanged FILE || true
Ini hanya akan menghapus dua karakter output dari grep yaitu "h "
, kemudian melarikan diri setiap ruang yang mungkin hadir dalam nama file, dan akhirnya || true
akan mencegah perintah untuk menghentikan prematur dalam kasus beberapa file dalam lingkaran memiliki kesalahan.
Jika anda menggunakan Git Extensions, kemudian ikuti langkah di bawah ini:
Anda selesai.
Ada di sini yang tidak tertutup. Tapi ingin menambahkan saya 2 sen. Pada saat ini, saya menjalankan membangun dan mengubah banyak file dan kemudian saya ingin bekerja pada sesuatu, sehingga perintah ini benar-benar membantu saya banyak.
git update-index --misalnya-tidak berubah `git status | grep dimodifikasi | sed 's|dimodifikasi:||g'| xargs`
Berharap orang lain menemukan itu berguna juga.