Parandus: Gitignore ei tööta

GitHub on osutunud juhtivaks teerajajaks koodikoostöö ja hoidlate jagamise valdkonnas. GitHub on peamiselt versioonihaldustarkvara, mis võimaldab kasutajatel kontrollida hajutatud versioonihaldust ja SCM-i (lähtekoodi haldamine). Seda platvormi kasutavad suuremad ettevõtted ja ettevõtted kogu maailmas.

Sellistel platvormidel on oma tehnilised omadused ja probleemid. Kooderite üks konkreetne probleem oli see, et .gitignore ei töötanud GitHubis. Platvorm kas ignoreeris .gitignore'i või töötas osaliselt. Huvitav on märkida, et probleem võib olla igal juhul veidi erinev, kuna iga juhtum on täiesti erinev stsenaarium. Kuid meie loetletud lahendused sisaldavad universaalselt toimivaid parandusi.

Mis on .gitignore?

Git (või GitHub) näeb kõiki faile teie töökataloogis. See iseloomustab kõiki faile kui ühte kolmest:

  • Jälgitud: need failid on kas varem ajaloos varem sidunud või järjestatud.
  • Jälgimata: need on failid, mida pole varem lavastatud ega määratud.
  • Eiratud: need on failid, mida kasutaja ise käskis Gitil täielikult ignoreerida.

Need eiratud failid võivad stsenaariumiti erineda ja on enamasti masinaga loodud failid või artefakte. See on levinud tava; võite ignoreerida mitmesuguseid muid faile vastavalt teie enda vajadustele. Mõned näited nendest failidest on:

  • Koostatud kood: need failid on tavaliselt laiendiga .class, .pyc, .ccp jne.
  • Peidetud süsteemifailid: Need on failid, mida süsteem kasutab oma toiminguteks, kuid mis on peidetud tavavaate eest, näiteks DS_Store või Thumbs.db jne.
  • Ehitamiskataloogide loomine: need on enamasti kataloogide / bin, / out jne kataloogidest.
  • Sõltuvuse vahemälud: need failid võivad olla moodulite / node või / package sisu.
  • IDE konfiguratsioonifailid: need on konfiguratsioonifailid, mis on enamasti teie IDE tarkvara loodud või hallatud.
  • Käitusajal loodud failid: Mõned programmid loovad faile käitamise ajal. Kui kumbki selline kood käivitatakse, võidakse mõned failid käivitusajal teie töökausta luua ja võite neid Gitis ignoreerida.

Ükskõik millist faili soovite ignoreerida, jälgitakse spetsiaalses failis nimega .gitignore, mida kontrollitakse enamasti teie tööhoidla juurest. GitHubi selleteemalise ametliku dokumentatsiooni kohaselt pole konkreetset gitignore käsku. Selle asemel peate käsitsi muutma faili, mida soovite eirata. .Gitignore-fail sisaldab mustreid, mis on sobitatud teie tööhoidla failinimedega ja neid kasutatakse selleks, et teha kindlaks, kas konkreetset faili tuleks ignoreerida või mitte.

Mis põhjustab .gitignore mittetöötamise?

Funktsioon .gitignore võib küll ideaalselt töötada, kuid te ei pruugi seda korralikult konfigureerida. Kõigis oma uuringutes jõudsime järeldusele, et moodul tõepoolest töötab. Põhjus, miks kooderid ei saa seda funktsiooni kasutada, on enamasti see, et nad pole faili õigesti konfigureerinud või on mõned tingimused, mis ei ole aluseks olevas koodis täidetud.

Siin on mõned lahendused, mis võivad teile sobida. Iga lahendus ei pruugi teie puhul olla kohaldatav, seega veenduge, et lülituksite järgmisele, kui esialgsed tingimused ei ole täidetud.

1. lahendus: .gitignore-faili kontrollimine

Tuli välja huvitav juhtum, kus nägime, et .gitignore-fail loodi vales vormingus. See konkreetne probleem ilmnes siis, kui kasutajad lõid faili Notepadi vaikerakenduse abil Windows OS-is. Selgub, et Notepad kirjutab faili ANSI-vormingu asemel Unicode'is. Selles lahenduses salvestame Notepadi muudatused õiges vormingus .gitignore ja vaatame, kas see probleemi lahendab.

Märkus. Kui märkmiku abil uue faili loote, peate failist .txt laiendi eemaldama.

  1. Pärast koodi või muudatuste kirjutamist Notepadis uues tekstidokumendis klõpsake nuppu Fail ja valige Salvesta nimega .
  1. Valige nüüd kodeerimise ees ANSI . Nüüd eemaldage .txt faililaiend ja salvestage fail nimega ' .gitignore '. Valige õige kataloog ja salvestage.
  1. Nüüd navigeerige kataloogi ja kontrollige, kas õige fail on loodud. Nüüd proovige seda uuesti Gitiga ja vaadake, kas ignoreerimise funktsioon töötab ootuspäraselt.

Arendajad peaksid hoiduma Windowsi vaikemärkmiku kasutamisest. Selle asemel peaksite kasutama korralikku programmeerijate märkmikku. Mõned näited hõlmavad Notepad ++ jne. Neis pole teil selliseid probleeme.

Märkus. Kui teie fail on juba UNICODE-vormingus salvestatud, peaksite selle sisu ANSI-vormingus korralikult salvestama, kui soovite, et Git teie faili õigesti tuvastaks.

Lahendus 2. Kontrollige faili, mida proovite eirata

Teine tingimus, mille kohaselt .gitignore töötab, on see, et teie fail ei tohiks veel hoidlasse kuuluda . See on väga oluline aspekt, nagu oleks see tõsi, faili ei ignoreerita, kuna see on juba hoidlasse lisatud . Git ei saa seda ignoreerida, isegi kui lisate selle nime või reegli faili .gitignore. Seega sisuliselt ignoreerib Git ainult jälitamata faile .

Peaksite vaatama oma struktuuri (hoidlat) ja veenduma, et faili, mida proovite praegu eirata, poleks hoidlasse lisatud. Kui see on nii, peate faili hoidlast eemaldama ja pärast viimaste muudatuste tegemist lisage selle nimi .gitignore'i (saate ka faili sisu kopeerida ja pärast selle kustutamist kopeerida teise nimega) .

3. lahendus: failide uuesti hoidlasse lisamine

Kui olete juba lisanud reeglid .gitignore'i, kuid failid, mida soovite eirata, on juba lisatud, saame failid uuesti lisada. Lisamine tähendab, et eemaldame kõik Giti indeksist ja lisame siis kõik uuesti oma hoidlasse. Kui lisame faile uuesti nullist, peetakse meeles reegleid, mille olete lisanud .gitignore'i ja lisatakse ainult õiged failid.

Märkus. Enne selle lahenduse tegemist peaksite oma koodi varundama ka kusagil mujal. Alati on hea igaks juhuks varukoopia omada.

  1. Käivitage järgmine käsk. See eemaldab etapi ja eemaldab rekursiivsel viisil teie failide teed git-indeksist.
git rm -r - vahemälu.
  1. Pärast selle täitmist peaksite käivitama järgmise käsu. See lisab kõik teie failid tagasi ja kuna .gitignore'il on reeglid, värskendatakse ainult õigeid faile.
git lisada.
  1. Nüüd paneme kõik teie failid tagasi registrisse, kasutades allolevat koodi:
git toime -m ".gitignore töötab nüüd"

Nüüd kontrollige oma faile ja vaadake, kas probleem on lahendatud, ja saate uuesti kasutada .gitignore ilma probleemideta.