Pertanyaan .gitignore tidak berfungsi


Saya .gitignore file tampaknya diabaikan oleh git - dapat .gitignore file menjadi rusak? Format file, lokal atau budaya apa yang diharapkan?

Saya .gitignore:

#this is a comment
debug.log
nbproject/

Output dari git status:

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       debug.log
#       nbproject/
nothing added to commit but untracked files present (use "git add" to track)

saya ingin debug.log dan nbproject/ tidak muncul dalam daftar file yang tidak terlacak.

Di mana saya harus mulai mencari untuk memperbaiki ini?


1069
2017-07-12 12:09


asal


Jawaban:


Bahkan jika Anda belum melacak file sejauh ini, git tampaknya dapat "mengetahui" tentang mereka bahkan setelah Anda menambahkannya .gitignore.

CATATAN : Pertama lakukan perubahan Anda saat ini, atau Anda akan kehilangan mereka.

Kemudian jalankan perintah berikut dari folder atas git repo Anda:

git rm -r --cached .
git add .
git commit -m "fixed untracked files"

2249
2017-07-12 12:20



Ketika file .gitignore tidak berfungsi (menambahkan sesuatu ke file .gitignore atau menghapus sesuatu dari file .gitignore), Anda dapat memeriksa tips berikut:

  1. Anda harus memperhatikan file gitignore global yang kadang-kadang dapat mempengaruhi gitignore Anda.
  2. Ketika Anda menambahkan sesuatu ke dalam file .gitignore, sebagai orang yang menjawab pertanyaan ini pertama:

    git rm -r --cached .
    git add .
    git commit -m "fixed untracked files"  
    
  1. Saat Anda menghapus sesuatu dari file .gitignore.Langkah-langkah di atas akan   tidak bekerja untuk Anda. Anda dapat mencoba ini:
    git add -f "filetype"
    git commit -m "Refresh removing filetype from .gitignore file."

"filetype" berarti file atau filetype yang ingin Anda hapus dari file .gitignore. Anda ingin membuat filetype dilacak kembali.


210
2017-09-03 13:54



Tetap. Ok, saya membuat file .gitignore di notepad pada windows dan itu tidak berfungsi. Ketika saya melihat file gitignore di linux itu tampak seperti omong kosong terorganisir - mungkin notepad telah menulis unicode daripada ascii atau apa pun 8-bit.

Jadi saya menulis ulang file di kotak linux saya, dan ketika saya menariknya kembali ke windows, itu berfungsi dengan baik! Hore!


131
2017-07-12 12:30



Tanpa menambahkan komitmen lain ke proyek Anda, satu baris akan cukup untuk dibuat .gitignore bekerja sebagaimana seharusnya:

git rm -r --cached debug.log nbproject

Ini akan menghapusnya dari repositori tetapi masih menyimpannya secara fisik, dalam bahasa Inggris biasa, menghapus riwayat perubahan yang terkait dengannya, dan juga tidak akan melacak perubahannya di commit mendatang. Sebuah penjelasan yang lebih baik Anda mungkin menemukannya sini.


77
2018-03-19 23:40



Penyebab lain dari masalah ini adalah ruang kosong atau tab sebelum pernyataan:

Contoh:

#Be aware of following:
 notWorkingIgnore.*
workingIgnore.*

Dan seperti yang ditunjukkan oleh komentar di bawah ini, ruang belakang juga bisa menjadi masalah

#Be aware of following:
notWorkingIgnore.* #<-Space
workingIgnore.*#<-Nospace

31
2017-12-23 01:48



Saya perhatikan bahwa pengkodean dari .gitignore memiliki efek - jika file itu Unicode, itu diabaikan, jika itu ASCII, itu tidak.

Proses:

  1. Verifikasi status: PS> git status
  2. Buat fungsi untuk Dapatkan-FileEncoding
  3. Uji .gitignoreenkode: PS> Get-FileEncoding .gitignore
  4. Ubah pengkodean ke ASCII: PS> Set-Content .gitignore -Encoding Ascii -Value (Get-Content .gitignore)
  5. Memastikan: PS> git status

27
2017-08-13 21:14



Seperti solusi lainnya, lakukan pertama dan sadar bahwa Anda AKAN kehilangan perubahan tanpa komitmen.

Saya memiliki hasil yang lebih baik dengan ini:

git rm -r --cached .
git reset HEAD --hard
git status

perhatikan bahwa status seharusnya tidak memiliki file yang dimodifikasi sekarang.


16
2017-11-14 23:13



Semua jawaban di sini sebenarnya merupakan solusi. Anda perlu membuat file .gitignore SEBELUM Anda menjalankan git init, jika tidak git tidak akan pernah tahu Anda harus mengabaikan file-file tersebut karena sudah dilacak.

echo .idea/ >> .gitignore
git init

Jika Anda mengembangkan setiap hari, saya menyarankan Anda untuk menambahkan file kebiasaan Anda yang diabaikan ke Anda ~/.gitignore_global mengajukan. Dengan begitu, git sudah tahu file mana Anda (yang berarti "pengguna Anda", karena ini adalah file di direktori rumah Anda) biasanya mengabaikan.


12
2017-11-25 21:21



Juga periksa direktori, tempat Anda meletakkan .gitignore Itu harus di akar proyek Anda:

./myproject/.gitignore

tidak masuk

./myproject/.git/.gitignore

11
2017-10-14 06:32