Git: Stop File Tracking

Ada beberapa contoh kasus di mana kita ingin menghentikan file tracking di dalam project kita.

#1 Menghapus file yang sudah tidak digunakan dan (automatis) menghentikan tracking pada file tersebut:

$ rm config.txt
$ git add config.txt

Dua perintah diatas dapat digabungkan menjadi satu perintah:

$ git rm config.txt 
rm 'config.txt'

#2 Menghentikan tracking tanpa menghapus file (kembali ke posisi “Untracked”):

$ git rm --cached config.txt
rm 'config.txt'

Menambahkan file kedalam .gitignore:

  1. Jika file sedang ditracking, maka kita harus menjalankan perintah git rm --cached <nama_file> atau git rm -r --cached && git add . (ketik “git add” lalu “spasi” dan “tanda titik”).
  2. Jika file belum ditracking, maka hanya menambahkan nama file kedalam .gitignore file, Git akan langsung mengabaikan file tersebut (bahkan sebelum .gitignore file dicommit).
  3. File tidak akan di push ke remote repository.
$ echo 'config.txt' > .gitignore

#3 Menghentikan tracking tanpa menghapus file, hanya pada local repository.

Perintah berikut hanya bisa digunakan dengan catatan bahwa:

  1. File sedang ditracking oleh Git.
  2. Untracking hanya berlaku pada local repository. Jika ada orang yg meng-clone dari remote repository, maka pada local repository mereka, file tersebut akan tetap ditracking oleh Git.
  3. File tetap akan di push ke remote repository.
$ git update-index --assume-unchanged config.txt

Untuk mengetahui list file yang sedang dihentikan tracking nya:

$ git ls-files -v
H .gitignore
H page.txt
h config.txt

== ATAU ==

$ git ls-files -v | grep '^h'
h config.txt

Pada output di atas kita dapat melihat bahwa ada tanda ‘h’ di depan config.txt. ‘h’ berarti file tersebut sementara dihentikan trackingnya oleh Git. ‘H’ berarti file tersebut sedang ditracking oleh Git.

Agar file config.txt kembali ditracking oleh Git. Kita dapat menggunakan perintah:

$ git update-index --no-assume-unchanged config.txt

Selamat mencoba!


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *