Fix: Gitignore fungerer ikke
GitHub har vist seg å være en ledende pioner innen kodesamarbeid og deling av depoter. GitHub er primært en versjonskontrollprogramvare som lar brukerne kontrollere distribuert versjonskontroll og SCM (kildekodeadministrasjon). Denne plattformen brukes av store bedrifter og selskaper over hele verden.
Plattformer som disse har sine tekniske egenskaper og problemer. Et spesifikt problem som koderne opplevde, var at .gitignore ikke fungerte i GitHub. Plattformen ignorerte enten .gitignore eller arbeidet delvis. Det er interessant å merke seg at problemet kan være litt annerledes i hvert tilfelle, siden hvert tilfelle er et helt annet scenario. Løsningene som vi lister opp vil imidlertid inneholde rettelser som vil fungere universelt.
Hva er .gitignore?
Git (eller GitHub) ser hver fil i arbeidskatalogen din. Den karakteriserer hver fil som en av de tre:
- Sporet: Disse filene er enten begått eller iscenesatt tidligere i historien.
- Usporet: Dette er filene som ikke tidligere er iscenesatt eller begått.
- Ignorert: Dette er filene som brukeren selv ba Git om å ignorere fullstendig.
Disse ignorerte filene kan variere fra scenario til scenario og er for det meste maskingenererte filer eller bygge gjenstander. Dette er vanlig praksis; du ignorerer kanskje forskjellige andre filer i henhold til dine egne behov. Noen eksempler på disse filene er:
- Kompilert kode: Disse filene er vanligvis med filtypen .class, .pyc, .ccp etc.
- Skjulte systemfiler: Dette er filer som brukes av systemet for dets operasjoner, men er skjult for vanlig visning, for eksempel DS_Store eller Thumbs.db, etc.
- Bygg utdata kataloger: Disse er for det meste av katalogene til / bin, / out, etc.
- Avhengighetsbuffer: Disse filene kan være innholdet i / node eller / pakkemoduler.
- IDE-konfigurasjonsfiler: Dette er konfigurasjonsfiler som for det meste er opprettet eller administrert av IDE-programvaren.
- Filer generert ved kjøretid: Det er noen programmer som lager filer på kjøretid. Hvis en slik kode kjøres, kan det hende at noen filer blir generert i løpet av kjøretiden i arbeidsmappen din, og du kan ignorere dem i Git.
Uansett hvilken fil du vil ignorere, blir det sporet i en spesiell fil som heter .gitignore, som for det meste er sjekket i roten til arbeidsområdet ditt. I følge den offisielle dokumentasjonen til GitHub om emnet, er det ingen spesifikk gitignore-kommando. I stedet må du redigere filen manuelt som du vil ignorere. .Gitignore-filen inneholder mønstre som samsvarer med filnavnene i arbeidsdatabasen, og disse brukes til å avgjøre om en bestemt fil skal ignoreres eller ikke.
Hva er årsaken til at .gitignore ikke fungerer?
.Gitignore-funksjonen fungerer kanskje perfekt, men du har kanskje ikke konfigurert den riktig. I alle våre undersøkelser kom vi til den konklusjonen at modulen faktisk fungerte. Årsaken til at kodere ikke kan bruke funksjonen, er hovedsakelig fordi de ikke har konfigurert filen riktig, eller det er noen betingelser som ikke oppfylles i den underliggende koden.
Her er noen løsninger som kan fungere for deg. Hver løsning kan ikke være aktuelt i ditt tilfelle, så sørg for at du bytter til den neste hvis de første betingelsene ikke er oppfylt.
Løsning 1: Kontrollerer .gitignore-filen
En interessant sak kom frem der vi så at .gitignore-filen ble opprettet i feil format. Dette spesielle problemet oppstod da brukere opprettet filen ved hjelp av standardapplikasjonen Notisblokk i Windows OS. Det viser seg at Notepad skriver filen i Unicode i stedet for ANSI-format. I denne løsningen vil vi lagre endringene i Notisblokk i riktig format av .gitignore og se om dette løser problemet.
Merk: Du må fjerne utvidelsen av .txt fra filen når du oppretter en ny fil ved hjelp av Notisblokk.
- Etter å ha skrevet koden eller endringer i et nytt tekstdokument i Notisblokk, klikker du på Fil og velg Lagre som.
- Nå foran Koding, å velge ANSI. Fjern nå filtypen til .txt og lagre filen med navnet ‘.gitignore'. Velg riktig katalog og lagre.
- Gå nå til katalogen og sjekk om riktig fil er opprettet. Test det igjen med Git og se om Ignorer-funksjonen fungerer som forventet.
Utviklere bør avstå fra å bruke standard Notisblokk i Windows. I stedet bør du bruke riktige 'programmerere' notisblokk. Noen eksempler inkluderer Notepad ++ osv. I disse vil du ikke ha problemer som disse.
Merk: Hvis filen din allerede er lagret i UNICODE-format, bør du lagre innholdet i ANSI-format riktig hvis du vil at filen din skal oppdages riktig av Git.
Løsning 2: Kontrollerer filen du prøver å ignorere
En annen forutsetning som .gitignore fungerer på, er at filen din ikke skal være en del av depotet ennå. Dette er et veldig viktig aspekt, som om dette er sant, vil filen ikke bli ignorert som den er allerede lagt til til depotet. Git kan ikke ignorere det selv om du plasserer navnet eller regelen i .gitignore-filen. Så i hovedsak ignorerer Git bare usporede filer.
Du bør se på strukturen din (depotet) og sørge for at filen du prøver å ignorere ikke blir lagt til depotet. Hvis det er tilfelle, må du fjerne filen fra depotet, og etter at de siste endringene er utført, legger du til navnet i .gitignore (du kan også kopiere innholdet i filen, og etter å ha slettet den, replikere den med et annet navn) .
Løsning 3: Legge til filer på nytt i arkivet
Hvis du allerede har lagt til regler i .gitignore, men filene du vil ignorere allerede er lagt til, kan vi legge til filene på nytt. Å legge til betyr at vi vil fjerne alt fra Gits indeks og deretter legge alt tilbake i depotet ditt igjen. Når vi legger til filer igjen fra bunnen av, vil reglene bli husket som du har lagt til i .gitignore, og bare de riktige filene blir lagt til.
Merk: Du bør også sikkerhetskopiere koden et annet sted før du utfører denne løsningen. Det er alltid bra å ha en sikkerhetskopi bare i tilfelle.
- Utfør følgende kommando. Dette vil fjerne scenene og fjerne banene til filene dine fra git-indeksen på en rekursiv måte.
git rm -r --cached.
- Etter at dette er utført, bør du utføre følgende kommando. Dette vil legge til alle filene dine tilbake, og siden .gitignore vil ha reglene, vil bare de riktige filene bli oppdatert.
git add.
- Nå vil vi forplikte alle filene dine tilbake til indeksen ved hjelp av koden nedenfor:
git commit -m ".gitignore jobber nå"
Inspiser nå filene dine og se om problemet er løst, og du kan bruke .gitignore igjen uten problemer.