Saya mencoba menggunakan .gitignore
file untuk mengecualikan templates.js
terletak di public/app/
folder. .gitignore
File saya terlihat seperti ini:
/vendor
/node_modules
composer.phar
composer.lock
.DS_Store
templates.js
Tetapi ketika saya memeriksa di Git Gui, templates.js
file tersebut masih ditampilkan di dalamnya. Bagaimana saya bisa secara khusus mengecualikan file menggunakan .gitignore
?
.gitignore
hanya mengabaikan konten yang akan ditambahkan..gitignore
benar?Jawaban:
Berbeda dengan apa yang mungkin disarankan oleh nama "abaikan".
.gitignore
hanya dikonsultasikan ketika Andagit add
mengajukan: dengan kata lain, file yang sudah ditambahkan ke repositori (indeks) tidak akan dikecualikan berdasarkan.gitignore
.Pertama Anda lebih baik memodifikasi
.gitignore
sedemikian rupa sehingga file tersebut tidak lagi ditambahkan. Tambahkan baris berikut ke.gitignore
file:Selanjutnya Anda perlu mengecualikan file dari repositori. Mungkin Anda tidak ingin menghapus file dari sistem file Anda, ini dapat dilakukan dengan:
The
--cached
bendera memastikan file tidak akan dihapus dari sistem file Anda. (Jika tidak penting, Anda dapat menggunakangit rm public/app/template.js
, tetapi ini akan menghapus file ).Latar Belakang
Alasan
.gitignore
tidak digunakan secara proaktif adalah karena terkadang Anda mungkin ingin mengganti file.gitignore
. Katakanlah misalnya Anda tidak ingin melacak*.log
file, Anda dapat menentukan*.log
di.gitignore
. Tetapi jika ada yang ingin Anda lacak, Anda dapat menambahkangit add -f some.log
. The-f
pasukan benderagit
untuk menambahkan file.sumber
Setelah sebuah file 'ditambahkan' ke repositori git satu kali, itu akan terus dilacak terlepas dari apakah itu terdaftar dalam file .gitignore atau tidak.
Saya menduga Anda telah menambahkan file template.js sebelumnya, dalam hal ini akan terus ada perubahan yang terlacak, sampai Anda menghapusnya dari repositori. Setelah file dihapus dari repositori, file tersebut akan diabaikan dengan benar melalui file .gitignore.
Cara untuk menghapus file dari git repository (command-line) tanpa menghapusnya adalah
Kemudian setelah Anda melakukannya dan mencoba berkomitmen dengan file di gitignore Anda, itu tidak akan berhasil.
Perhatikan bahwa jika Anda secara khusus menambahkan file yang Anda miliki di gitignore, penambahan file secara manual akan menimpa gitignore.
sumber
Jika Anda sudah melacak file (
git add
di atasnya dangit commit
),.gitignore
tidak akan membantu.Saya yakin apa yang Anda inginkan adalah menghentikan pelacakan file, lalu gunakan
.gitignore
untuk mengecualikannya. Untuk berhenti melacak file tetapi tetap menyimpan file, gunakan:git rm --cached <file>
sumber
Dalam hal ini Anda dapat berhenti melacak
templates.js
denganSeperti yang dijelaskan orang lain,
.gitignore
hanya mengabaikan konten yang akan ditambahkan. Misalnya, jika Anda sering menggunakangit add .
dan memilikitemplates.js
di Anda.gitignore
, maka git tidak akan menambahkannya.sumber