Labojums: Gitignore nedarbojas

GitHub ir kļuvis par vadošo pionieri kodu sadarbības un repozitoriju koplietošanas jomā. GitHub galvenokārt ir versiju kontroles programmatūra, kas ļauj lietotājiem kontrolēt izplatīto versiju kontroli un SCM (pirmkodu pārvaldību). Šo platformu izmanto lielākie uzņēmumi un uzņēmumi visā pasaulē.

Šādām platformām ir savas tehniskās īpašības un jautājumi. Viena īpaša problēma, ar kuru saskārās kodētāji, bija tā, ka .gitignore nedarbojās GitHub. Platforma vai nu ignorēja .gitignore, vai arī darbojās daļēji. Interesanti atzīmēt, ka problēma katrā gadījumā var būt nedaudz atšķirīga, jo katrs gadījums ir pilnīgi atšķirīgs scenārijs. Tomēr mūsu uzskaitītajos risinājumos būs labojumi, kas darbosies universāli.

Kas ir .gitignore?

Git (vai GitHub) redz visus failus jūsu darba direktorijā. Katru failu tas raksturo kā vienu no trim:

  • Izsekots: šie faili ir vai nu piesaistīti, vai pakārtoti iepriekš vēsturē.
  • Neuzmeklēti: tie ir faili, kas iepriekš nav inscenēti vai veikti.
  • Ignorēts: tie ir faili, kurus lietotājs pats lika Gitam pilnībā ignorēt.

Šie ignorētie faili var atšķirties atkarībā no scenārija, un tie galvenokārt ir mašīnā ģenerēti faili vai būvniecības artefakti. Tā ir izplatīta prakse; iespējams, jūs ignorējat dažādus citus failus atbilstoši savām vajadzībām. Daži šo failu piemēri ir:

  • Apkopots kods: Šie faili parasti ir ar paplašinājumu .class, .pyc, .ccp utt.
  • Slēptie sistēmas faili: tie ir faili, kurus sistēma izmanto savām darbībām, bet ir paslēpti no vienkārša skata, piemēram, DS_Store vai Thumbs.db utt.
  • Veidot izejas direktorijus: tie pārsvarā ir / bin, / out utt. Direktoriji.
  • Atkarības kešatmiņas: šie faili var būt / node vai / paketes moduļu saturs.
  • IDE konfigurācijas faili: Tie ir konfigurācijas faili, kurus lielākoties izveido vai pārvalda jūsu IDE programmatūra.
  • Izpildes laikā ģenerētie faili: ir dažas programmas, kas failus izveido izpildes laikā. Ja tiek palaists kāds no šiem kodiem, daži faili var tikt ģenerēti izpildes laikā jūsu darba mapē, un jūs tos varat ignorēt Git.

Neatkarīgi no tā, kuru failu vēlaties ignorēt, tiek izsekots īpašā failā ar nosaukumu .gitignore, kuru lielākoties pārbauda jūsu darba krātuves saknē. Saskaņā ar GitHub oficiālo dokumentāciju par šo tēmu nav īpašas gitignore komandas. Tā vietā jums ir manuāli jārediģē fails, kuru vēlaties ignorēt. .Gitignore failā ir modeļi, kas ir saskaņoti ar jūsu darba krātuves failu nosaukumiem, un tie tiek izmantoti, lai palīdzētu noteikt, vai konkrēts fails ir jāignorē vai nē.

Kas izraisa .gitignore nedarbošanos?

Iespēja, ka .gitignore funkcija darbojas nevainojami, taču, iespējams, neesat to pareizi konfigurējis. Visās mūsu aptaujās mēs nonācām pie secinājuma, ka modulis patiešām darbojas. Iemesls, kāpēc kodētāji nespēj izmantot šo funkciju, galvenokārt ir tāpēc, ka viņi nav pareizi konfigurējuši failu vai ir daži nosacījumi, kas pamatā esošajā kodā nav izpildīti.

Šeit ir daži risinājumi, kas varētu noderēt jums. Katrs risinājums var nebūt piemērots jūsu gadījumā, tāpēc pārliecinieties, ka pārslēdzaties uz nākamo, ja netiek izpildīti sākotnējie nosacījumi.

1. risinājums: .gitignore faila pārbaude

Interesants gadījums parādījās, kad redzējām, ka .gitignore fails tika izveidots nepareizā formātā. Šī konkrētā problēma radās, kad lietotāji izveidoja failu, izmantojot Windows Notepad noklusējuma lietojumprogrammu. Izrādās, ka Notepad failu raksta Unicode, nevis ANSI formātā. Šajā risinājumā mēs saglabāsim Notepad izmaiņas pareizajā .gitignore formātā un redzēsim, vai tas novērš problēmu.

Piezīme: Ja no faila, izmantojot Notepad, izveidojat jaunu failu, no faila ir jānoņem paplašinājums .txt.

  1. Pēc koda ierakstīšanas vai izmaiņām jaunā teksta dokumentā Notepad noklikšķiniet uz Fails un atlasiet Saglabāt kā .
  1. Tagad kodēšanas priekšā atlasiet ANSI . Tagad noņemiet .txt faila paplašinājumu un saglabājiet failu ar nosaukumu .gitignore . Izvēlieties pareizo direktoriju un saglabājiet.
  1. Tagad dodieties uz direktoriju un pārbaudiet, vai ir izveidots pareizs fails. Tagad pārbaudiet to vēlreiz ar Git un pārbaudiet, vai Ignore funkcija darbojas, kā paredzēts.

Izstrādātājiem vajadzētu atturēties no Windows noklusējuma Notepad izmantošanas. Tā vietā jums vajadzētu izmantot pareizo "programmētāju" bloknotu. Daži piemēri ietver Notepad ++ utt. Tajos jums nebūs šādu problēmu.

Piezīme: Ja jūsu fails jau ir saglabāts UNICODE formātā, jums vajadzētu pareizi saglabāt ANSI formātu, ja vēlaties, lai Git pareizi noteiktu jūsu failu.

2. risinājums: pārbaudiet failu, kuru mēģināt ignorēt

Vēl viens nosacījums, ar kuru darbojas .gitignore, ir tāds, ka jūsu failam vēl nevajadzētu būt repozitorija daļai . Tas ir ļoti būtisks aspekts, it kā tā ir taisnība, fails netiks ignorēts, jo tas jau ir pievienots repozitorijam. Git to nevar ignorēt, pat ja tā nosaukumu vai kārtulu ievietojat .gitignore failā. Tātad būtībā Git ignorē tikai neuzmeklētus failus .

Jums vajadzētu apskatīt savu struktūru (repozitoriju) un pārliecināties, vai fails, kuru pašlaik mēģināt ignorēt, nav pievienots repozitorijam. Ja tas tā ir, jums būs jānoņem fails no repozitorija un pēc jaunāko izmaiņu izdarīšanas pievienojiet tā nosaukumu .gitignore (varat arī kopēt faila saturu un pēc tā izdzēšanas atkārtot to ar citu nosaukumu) .

3. risinājums: failu atkārtota pievienošana krātuvei

Ja jau esat pievienojis kārtulas .gitignore, bet faili, kurus vēlaties ignorēt, jau ir pievienoti, mēs varam atkārtoti pievienot failus. Pievienošana nozīmē, ka mēs noņemsim visu no Git indeksa un pēc tam visu atkal pievienosim jūsu repozitorijam. Kad mēs atkal pievienosim failus no jauna, tiks paturēti prātā noteikumi, kurus esat pievienojis .gitignore, un tiek pievienoti tikai pareizie faili.

Piezīme. Pirms šī risinājuma veikšanas dublējiet kodu arī citur. Vienmēr ir labi, ja katram gadījumam ir rezerves kopija.

  1. Izpildiet šādu komandu. Tas atstās skatuves un rekursīvā veidā noņems ceļu uz jūsu failiem no git indeksa.
git rm -r - kešatmiņā.
  1. Pēc tam, kad tas ir izpildīts, jums jāizpilda šāda komanda. Tas atjaunos visus jūsu failus un, tā kā .gitignore būs noteikumi, tiks atjaunināti tikai pareizie faili.
git pievienot.
  1. Tagad mēs iesūtīsim visus jūsu failus atpakaļ indeksā, izmantojot zemāk esošo kodu:
git saistīt -m ".gitignignore tagad strādā"

Tagad pārbaudiet savus failus un pārliecinieties, vai problēma ir atrisināta, un jūs atkal varat izmantot .gitignore bez problēmām.