Ketika Anda bekerja dengan Git, Anda mungkin ingin menambahkan beberapa baris baru ke file gitignore. Namun, ketika membuat daftar file yang akan dikomit di area pementasan (staging area) , Anda menyadari bahwa beberapa file yang diabaikan masih muncul.
Dalam kasus ini, Anda mungkin perlu menghapus cache Git Anda. Dalam tutorial ini, saya akan memberikan panduan komprehensif tentang cara menghapus cache Git Anda.
Kami juga akan menjelaskan secara detail cara menghapus file yang ingin Anda abaikan secara aktif.
Menghapus Cache Git menggunakan rm
Biasanya, Anda ingin menghapus cache Git karena Anda menambahkan entri baru di file gitignore dan Anda ingin entri tersebut diperhitungkan.
Cara termudah untuk menghapus cache Git Anda adalah dengan menggunakan perintah "git rm" dengan opsi "-cached".
Anda dapat memilih untuk menghapus satu file atau menghapus seluruh direktori kerja.
git rm --cached filename
Untuk contoh ini, file .gitignore diatur untuk mengabaikan semua file yang diakhiri dengan ".log"
Content of .gitignore:
*.log
Namun, file bernama "file.log" sudah ada di area pementasan (staging area) repositori Git , ini juga disebut indeks
On branch master
Your branch is ahead of 'origin/master' by 2 commits.
(use "git push" to publish your local commits)
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: file.conf
Dalam kasus ini, Anda ingin file Anda berpindah dari area pementasan kembali ke direktori kerja (pada dasarnya bagian yang tidak terlacak di Git).
Untuk menghapus cache, Anda menggunakan perintah git rm.
Jika dilengkapi dengan opsi "-cache", ini hanya akan menghapus berkas dari area penyimpanan, bukan dari direktori kerja.
$ git rm --cached file.conf
$ git status
On branch master
Your branch is ahead of 'origin/master' by 2 commits.
(use "git push" to publish your local commits)
Untracked files:
(use "git add <file>..." to include in what will be committed)
file.conf
nothing added to commit but untracked files present (use "git add" to track)
Menghapus Seluruh Cache Git
Dalam beberapa kasus, Anda mungkin ingin menghapus cache dari seluruh area pementasan (staging area) Git Anda.
Ini sangat berguna ketika Anda menambahkan beberapa file yang Anda inginkan untuk diabaikan melalui file .gitignore.
Untuk menghapus seluruh cache Git Anda, gunakan perintah "git rm" dengan opsi "-r" untuk rekursif.
$ git rm -r --cached .
Ketika semua file dihapus dari indeks, Anda dapat menambahkan kembali file biasa (file yang tidak ingin Anda abaikan)
$ git add .
$ git commit -am 'Removed files from the index (now ignored)'
Dalam contoh ini, file .gitignore diatur untuk mengabaikan file yang berakhiran .conf.
Content of .gitignore:
*.conf
Di area pementasan, kita memiliki dua file yang diakhiri dengan .conf dan tiga file biasa yang diakhiri dengan .js.
On branch master
Your branch is ahead of 'origin/master' by 2 commits.
(use "git push" to publish your local commits)
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: file.conf
new file: file2.conf
new file: index.js
new file: script.js
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: .gitignore
Pertama, mari kita hapus semua file yang saat ini dilacak.
$ git rm -r --cached .
rm '.gitignore'
rm 'README.md'
rm 'file.conf'
rm 'file2.conf'
rm 'index.js'
rm 'script.js'
Sekarang beberapa file mungkin ditandai sebagai terhapus dan beberapa file lainnya kembali ke direktori kerja.
Sekarang, Anda ingin menambahkannya kembali ke area pementasan sambil mempertimbangkan konten file .gitignore Anda.
$ git add .
$ git status
On branch master
Your branch is ahead of 'origin/master' by 2 commits.
(use "git push" to publish your local commits)
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: .gitignore
new file: index.js
new file: script.js
File konfigurasi tidak lagi berada di area pementasan.
Anda sekarang dapat melakukan komit dan mendorongnya ke repositori Anda.
$ git commit -am 'Removed files from the index (now ignored)'
$ git push
Cara Singkat
> git rm -r --cached .
> git add .
> git commit -m 'git cache cleared'
> git push