Betulkan: Gitignore tidak berfungsi

GitHub telah muncul sebagai pelopor terkemuka dalam bidang kolaborasi kod dan perkongsian repositori. GitHub terutamanya merupakan perisian kawalan versi yang membolehkan pengguna mengawal kawalan versi diedarkan dan SCM (pengurusan kod sumber). Platform ini digunakan oleh perniagaan dan syarikat utama di seluruh dunia.

Platform seperti ini mempunyai teknikal dan masalahnya. Satu masalah khusus yang dialami oleh pengekod adalah bahawa .gitignore tidak berfungsi di GitHub. Platform sama ada mengabaikan .gitignore atau berfungsi secara separa. Sangat menarik untuk diperhatikan bahawa masalahnya mungkin sedikit berbeza dalam setiap kes kerana setiap kes adalah senario yang sama sekali berbeza. Walau bagaimanapun, penyelesaian yang kami senaraikan akan mengandungi pembaikan yang akan berfungsi secara universal.

Apa itu .gitignore?

Git (atau GitHub) melihat setiap fail dalam direktori kerja anda. Ini mencirikan setiap fail sebagai salah satu daripada tiga:

  • Dilacak: Fail-fail ini dibuat atau dipentaskan sebelumnya dalam sejarah.
  • Tidak dilacak: Ini adalah fail yang sebelumnya tidak dipentaskan atau dilakukan.
  • Diabaikan: Ini adalah fail yang pengguna sendiri memberitahu Git untuk mengabaikan sepenuhnya.

Fail yang diabaikan ini mungkin berbeza-beza mengikut senario dan kebanyakannya fail yang dihasilkan mesin atau artifak binaan. Ini adalah amalan biasa; anda mungkin mengabaikan pelbagai fail lain mengikut keperluan anda sendiri. Beberapa contoh fail ini adalah:

  • Kod yang disusun: Fail-fail ini biasanya dengan sambungan .class, .pyc, .ccp dll.
  • Fail sistem tersembunyi: Ini adalah fail yang digunakan oleh sistem untuk operasinya tetapi tersembunyi dari pandangan biasa, misalnya, DS_Store atau Thumbs.db, dll.
  • Membina direktori output: Ini kebanyakannya adalah direktori / bin, / out, dll.
  • Cache ketergantungan: Fail-fail ini mungkin merupakan kandungan modul / nod atau / paket.
  • Fail Konfigurasi IDE: Ini adalah fail konfigurasi yang kebanyakannya dibuat atau dikendalikan oleh perisian IDE anda.
  • Fail dihasilkan semasa runtime: Ada beberapa program yang membuat file pada waktu run. Sekiranya salah satu kod tersebut dijalankan, beberapa fail mungkin dihasilkan pada waktu berjalan di folder kerja anda dan anda mungkin mengabaikannya di Git.

Mana-mana fail yang ingin anda abaikan dilacak dalam fail khas bernama .gitignore yang kebanyakannya dicentang di root repositori kerja anda. Menurut dokumentasi rasmi GitHub mengenai perkara itu, tidak ada arahan gitignore yang khusus. Sebaliknya, anda perlu mengedit fail yang ingin anda abaikan secara manual. Fail .gitignore mengandungi corak yang sesuai dengan nama fail di repositori kerja anda dan ini digunakan untuk membantu menentukan sama ada fail tertentu harus diabaikan atau tidak.

Apa yang menyebabkan .gitignore tidak berfungsi?

Ciri .gitignore mungkin berfungsi dengan sempurna tetapi anda mungkin tidak mengkonfigurasinya dengan betul. Dalam semua tinjauan kami, kami sampai pada kesimpulan bahawa modul itu benar-benar berfungsi. Sebab mengapa pengekod tidak dapat menggunakan ciri ini adalah kerana mereka belum mengkonfigurasi fail dengan betul atau terdapat beberapa syarat yang tidak dipenuhi dalam kod yang mendasari.

Berikut adalah beberapa penyelesaian yang mungkin sesuai untuk anda. Setiap penyelesaian mungkin tidak berlaku dalam kasus Anda, jadi pastikan anda beralih ke yang lain jika syarat awal tidak terpenuhi.

Penyelesaian 1: Memeriksa Fail .gitignore

Kes menarik muncul di mana kami melihat bahawa fail .gitignore dibuat dalam format yang salah. Masalah khusus ini berlaku ketika pengguna membuat file menggunakan aplikasi default Notepad di Windows OS. Ternyata Notepad menulis fail dalam Unicode dan bukannya format ANSI. Dalam penyelesaian ini, kami akan menyimpan perubahan Notepad dalam format .gitignore yang betul dan melihat apakah ini dapat menyelesaikan masalah.

Catatan: Anda harus membuang lanjutan .txt dari fail semasa anda membuat fail baru menggunakan Notepad.

  1. Setelah menulis kod atau perubahan dalam dokumen teks baru di Notepad, klik pada File dan pilih Save As .
  1. Sekarang di hadapan Pengekodan , pilih ANSI . Sekarang keluarkan sambungan fail .txt dan simpan fail dengan nama ' .gitignore '. Pilih direktori yang betul dan simpan.
  1. Sekarang arahkan ke direktori dan periksa apakah fail yang betul dibuat. Sekarang uji lagi dengan Git dan lihat apakah ciri Abaikan berfungsi seperti yang diharapkan.

Pembangun harus menjauhi Notepad lalai di Windows. Sebaliknya, anda harus menggunakan notepad 'programmer' yang betul. Beberapa contoh termasuk Notepad ++ dll. Di dalamnya, anda tidak akan menghadapi masalah seperti ini.

Catatan: Sekiranya fail anda sudah disimpan dalam format UNICODE, anda harus menyimpan kandungan dalam format ANSI dengan betul jika anda mahu fail anda dapat dikesan dengan betul oleh Git.

Penyelesaian 2: Memeriksa Fail yang anda cuba Abaikan

Syarat lain di mana .gitignore berfungsi ialah fail anda belum boleh menjadi sebahagian daripada repositori . Ini adalah aspek yang sangat penting seolah-olah ini benar, fail tidak akan diabaikan kerana sudah ditambahkan ke repositori. Git tidak boleh mengabaikannya walaupun anda meletakkan nama atau peraturannya dalam fail .gitignore. Jadi pada hakikatnya, Git hanya mengabaikan fail yang tidak dilacak .

Anda harus melihat struktur anda (repositori) dan memastikan bahawa fail yang anda cuba abaikan tidak ditambahkan ke repositori. Sekiranya ada, anda mesti mengeluarkan fail dari repositori dan setelah perubahan terbaru dilakukan, tambahkan namanya ke .gitignore (anda juga dapat menyalin kandungan fail tersebut dan setelah menghapusnya, gandakan dengan nama yang lain) .

Penyelesaian 3: Menambah semula Fail ke Repositori

Sekiranya anda telah menambahkan peraturan ke .gitignore tetapi fail yang ingin anda abaikan sudah ditambahkan, kami dapat menambahkan semula fail tersebut. Menambah bermaksud bahawa kami akan membuang semuanya dari indeks Git dan kemudian menambahkan semuanya kembali ke repositori anda lagi. Apabila kita menambahkan fail lagi dari awal, peraturan akan diingat yang telah anda tambahkan di .gitignore dan hanya fail yang betul ditambahkan.

Catatan: Anda harus membuat sandaran kod anda di tempat lain juga sebelum melakukan penyelesaian ini. Selalu baik untuk mempunyai sandaran sekiranya berlaku.

  1. Jalankan arahan berikut. Ini akan berhenti dan membuang jalan ke fail anda dari indeks git secara berulang.
git rm -r - dicache.
  1. Setelah ini dilaksanakan, anda harus melaksanakan perintah berikut. Ini akan menambah semua fail anda kembali dan kerana .gitignore akan mempunyai peraturan, hanya fail yang betul akan dikemas kini.
git tambah.
  1. Sekarang kami akan memasukkan semua fail anda kembali ke indeks menggunakan kod di bawah:
git commit -m ".gitignore kini berfungsi"

Sekarang periksa fail anda dan lihat apakah masalahnya diselesaikan dan anda boleh menggunakan .gitignore lagi tanpa masalah.