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 lietotājiem ļauj kontrolēt izplatītās versijas kontroli un SCM (avota koda pārvaldību). Šo platformu izmanto lielākie uzņēmumi un uzņēmumi visā pasaulē.

.gitignore

Šādām platformām ir savas tehniskās un problēmas. Viena īpaša problēma, ko pieredzējuši 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 katru failu jūsu darba direktorijā. Tas raksturo katru failu kā vienu no trim:

  • Izsekotie: šie faili ir izveidoti vai iesākti vēsturē.
  • Neuzņemts: šie ir faili, kas iepriekš nav iestudēti vai apņemti .
  • Ignorēts: šie ir faili, kurus pats lietotājs lika Gitam pilnībā ignorēt.

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

  • Apkopots kods: Šie faili parasti ir ar paplašinājumu .class, .pyc, .ccp utt.
  • Slēptie sistēmas faili: šie 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.
  • Izvades direktoriju veidošana: tie galvenokārt ir direktoriju / bin, / out utt direktoriji.
  • Atkarības kešatmiņas: šie faili var būt / mezgla vai / pakešu moduļu saturs.
  • IDE konfigurācijas faili: šie ir konfigurācijas faili, kurus galvenokārt izveido vai pārvalda jūsu IDE programmatūra.
  • Faili, kas ģenerēti izpildlaikā: ir dažas programmas, kas failus izveido izpildes laikā. Ja kāds no šiem kodiem tiek palaists, daži faili, iespējams, tiek ģenerēti izpildes mapē darba mapē, un jūs tos varētu ignorēt Git.

Neatkarīgi no tā, kuru failu vēlaties ignorēt, tas tiek izsekots īpašā failā ar nosaukumu .gitignore, kas lielākoties tiek pārbaudīts jūsu darba krātuves saknē. Saskaņā ar GitHub oficiālo dokumentāciju par šo tēmu nav īpašu komandu gitignore. Tā vietā jums manuāli jārediģē fails, kuru vēlaties ignorēt. .Gitignore failā ir paraugi, kas ir saskaņoti ar failu nosaukumiem jūsu darba krātuvē, un tos izmanto, lai palīdzētu noteikt, vai konkrēts fails ir jāignorē.

Kas izraisa .gitignore nestrādāšanu?

Iespējams, ka .gitignore funkcija darbojas perfekti, taču, iespējams, jūs to neesat pareizi konfigurējis. Visos mūsu apsekojumos mēs nonācām pie secinājuma, ka modulis patiešām darbojas. Kodētāji nevar izmantot funkciju, galvenokārt tāpēc, ka viņi nav pareizi konfigurējuši failu vai ir daži nosacījumi, kas netiek izpildīti pamata kodā.

Šeit ir daži risinājumi, kas varētu jums noderēt. Katrs risinājums, iespējams, nav piemērojams jūsu gadījumā, tāpēc pārliecinieties, vai esat pārgājis uz nākamo, ja sākotnējie nosacījumi netiek izpildīti.

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

Iznāca interesants gadījums, kad mēs redzējām, ka .gitignore fails tika izveidots nepareizā formātā. Šī konkrētā problēma radās, kad lietotāji izveidoja failu, izmantojot operētājsistēmas Windows OS noklusējuma lietojumprogrammu Notepad. 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 pārbaudīsim, vai tas novērš problēmu.

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

  1. Pēc koda ierakstīšanas vai izmaiņām jaunā teksta dokumentā Notepad noklikšķiniet uz File un atlasiet Save As .

Saglabāt kā - piezīmjdatoru
  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.

ANSI kā kodēšanas veida izvēle
  1. Tagad dodieties uz direktoriju un pārbaudiet, vai ir izveidots pareizais fails. Tagad vēlreiz pārbaudiet to ar Git un pārbaudiet, vai funkcija Ignorēt darbojas kā paredzēts.

Izstrādātājiem vajadzētu atturēties no noklusējuma Notepad izmantošanas Windows. Tā vietā jums vajadzētu izmantot pareizu “programmētāju” piezīmju bloku. Daži piemēri ir Notepad ++ utt. Šajos gadījumos jums nebūs tādu problēmu kā šie.

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

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

Vēl viens nosacījums, kurā .gitignore darbojas, ir tāds, ka jūsu failam vēl nevajadzētu būt krātuves daļai . Tas ir ļoti būtisks aspekts, jo, ja tā ir taisnība, fails netiks ignorēts, jo tas jau ir pievienots krātuvei. Git to nevar ignorēt, pat ja ievietojat tā vārdu vai kārtulu .gitignore failā. Tātad būtībā Git ignorē tikai neizsekotus failus .

Jums vajadzētu apskatīt savu struktūru (repozitoriju) un pārliecināties, ka fails, kuru jūs mēģināt ignorēt, nav pievienots repozitorijam. Ja tas tā ir, jums būs jānoņem fails no repozitorija un pēc tam, kad ir veiktas pēdējās izmaiņas, pievienojiet tā nosaukumu .gitignore (jūs varat arī nokopēt faila saturu un pēc tā izdzēšanas replicēt to ar citu vārdu). .

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

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

Piezīme. Pirms šī risinājuma veikšanas jums arī vajadzētu dublēt savu kodu kaut kur citur. Vienmēr ir labi, ja katram gadījumam ir rezerves kopija.

  1. Izpildiet šo komandu. Tas atiestatīs un rekursīvā veidā noņems ceļus uz failiem no GIT indeksa.
 git rm -r - iespiests. 
  1. Pēc tam, kad tas ir izpildīts, jums vajadzētu izpildīt šo komandu. Tas pievienos visus jūsu failus atpakaļ, un, tā kā .gitignore būs noteikumi, tiks atjaunināti tikai pareizi faili.
 git pievienot. 
  1. Tagad visus jūsu failus mēs iesūtīsim atpakaļ indeksā, izmantojot zemāk redzamo kodu:
 git activ -m ".gitignore tagad strādā" 

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

Interesanti Raksti