Fix: Gitignore werkt niet
GitHub is uitgegroeid tot een toonaangevende pionier op het gebied van codesamenwerking en het delen van repository's. GitHub is in de eerste plaats een versiebeheersoftware waarmee gebruikers gedistribueerde versiebeheer en SCM (broncodebeheer) kunnen beheren. Dit platform wordt gebruikt door grote bedrijven en bedrijven over de hele wereld.
Dergelijke platforms hebben hun technische details en problemen. Een specifiek probleem dat de codeerders ondervonden, was dat .gitignore niet werkte in GitHub. Het platform negeerde de .gitignore of werkte gedeeltelijk. Het is interessant om op te merken dat het probleem in elk geval een beetje anders kan zijn, aangezien elk geval een heel ander scenario is. De oplossingen die we noemen, bevatten echter fixes die universeel zullen werken.
Wat is .gitignore?
Git (of GitHub) ziet elk bestand in je werkdirectory. Het karakteriseert elk bestand als een van de drie:
- Bijgehouden: Deze bestanden zijn ofwel vastgelegd ofwel geënsceneerd in de geschiedenis.
- Niet bijgehouden: Dit zijn de bestanden die niet eerder zijn geënsceneerd of vastgelegd.
- Buiten beschouwing gelaten: Dit zijn de bestanden die de gebruiker zelf tegen Git heeft gezegd volledig te negeren.
Deze genegeerde bestanden kunnen van scenario tot scenario verschillen en zijn meestal machinaal gegenereerde bestanden of build-artefacten. Dit is de gangbare praktijk; het kan zijn dat u verschillende andere bestanden naar uw eigen behoeften negeert. Enkele voorbeelden van deze bestanden zijn:
- Gecompileerde code: Deze bestanden hebben meestal de extensie .class, .pyc, .ccp etc.
- Verborgen systeembestanden: Dit zijn bestanden die door het systeem worden gebruikt voor zijn bewerkingen, maar die niet zichtbaar zijn, bijvoorbeeld DS_Store of Thumbs.db, enz.
- Bouw uitvoermappen: Dit zijn meestal de mappen van / bin, / out, etc.
- Afhankelijkheid caches: Deze bestanden kunnen de inhoud zijn van / node- of / packages-modules.
- IDE-configuratiebestanden: Dit zijn configuratiebestanden die meestal worden gemaakt of beheerd door uw IDE-software.
- Bestanden gegenereerd tijdens runtime: Er zijn enkele programma's die bestanden tijdens runtime maken. Als een van beide van deze code wordt uitgevoerd, kunnen sommige bestanden tijdens runtime in je werkmap worden gegenereerd en kun je ze in Git negeren.
Welk bestand je ook wilt negeren, het wordt bijgehouden in een speciaal bestand genaamd .gitignore dat meestal wordt gecontroleerd in de root van je werkende repository. Volgens de officiële documentatie van GitHub over dit onderwerp is er geen specifiek gitignore-commando. In plaats daarvan moet u het bestand dat u wilt negeren, handmatig bewerken. Het .gitignore-bestand bevat patronen die worden vergeleken met de bestandsnamen in uw werkende repository en deze worden gebruikt om te helpen bepalen of een specifiek bestand moet worden genegeerd of niet.
Wat zorgt ervoor dat .gitignore niet werkt?
De .gitignore-functie werkt mogelijk perfect, maar u hebt deze mogelijk niet correct geconfigureerd. In al onze onderzoeken kwamen we tot de conclusie dat de module inderdaad werkte. De reden waarom codeerders de functie niet kunnen gebruiken, is meestal omdat ze het bestand niet correct hebben geconfigureerd of omdat er een aantal voorwaarden zijn waaraan niet wordt voldaan in de onderliggende code.
Hier zijn enkele oplossingen die voor u kunnen werken. Elke oplossing is in uw geval mogelijk niet van toepassing, dus zorg ervoor dat u naar de volgende overschakelt als niet aan de beginvoorwaarden wordt voldaan.
Oplossing 1: het .gitignore-bestand controleren
Er kwam een interessant geval naar voren waarin we zagen dat het .gitignore-bestand in het verkeerde formaat was gemaakt. Dit specifieke probleem deed zich voor toen gebruikers het bestand maakten met de standaardtoepassing van Kladblok in Windows OS. Het blijkt dat Kladblok het bestand schrijft in Unicode in plaats van ANSI-indeling. In deze oplossing slaan we de wijzigingen van Kladblok op in de juiste indeling van .gitignore en kijken of dit het probleem oplost.
Opmerking: U moet de extensie .txt uit het bestand verwijderen wanneer u een nieuw bestand maakt met Kladblok.
- Na het schrijven van de code of wijzigingen in een nieuw tekstdocument in Kladblok, klikt u op het dossier en selecteer Opslaan als.
- Nu voor codering, selecteer ANSI. Verwijder nu de bestandsextensie van .txt en sla het bestand op met de naam ‘.gitignore’. Selecteer de juiste directory en sla deze op.
- Navigeer nu naar de directory en controleer of het juiste bestand is aangemaakt. Test het nu opnieuw met Git en kijk of de functie Negeren werkt zoals verwacht.
Ontwikkelaars moeten afzien van het gebruik van het standaard Kladblok in Windows. In plaats daarvan zou u het juiste notitieblok voor ‘programmeurs’ moeten gebruiken. Enkele voorbeelden zijn onder meer Notepad ++ enz. Daarin zult u geen problemen als deze hebben.
Opmerking: Als je bestand al is opgeslagen in UNICODE-formaat, moet je de inhoud correct opslaan in ANSI-formaat als je wilt dat je bestand correct wordt gedetecteerd door Git.
Oplossing 2: controleer het bestand dat u probeert te negeren
Een andere voorwaarde waarop .gitignore werkt, is dat uw bestand dat niet zou moeten zijn nog een deel van de repository. Dit is een zeer essentieel aspect, want als dit waar is, zal het bestand niet worden genegeerd zoals het is al toegevoegd naar de repository. Git kan dat niet negeren, zelfs niet als je zijn naam of regel in het .gitignore-bestand plaatst. Dus in wezen negeert Git alleen niet-bijgehouden bestanden.
U moet naar uw structuur (repository) kijken en ervoor zorgen dat het bestand dat u momenteel probeert te negeren, niet aan de repository wordt toegevoegd. Als dit het geval is, zou u het bestand uit de repository moeten verwijderen en nadat de laatste wijzigingen zijn vastgelegd, de naam ervan toevoegen aan .gitignore (u kunt ook de inhoud van het bestand kopiëren en na het verwijderen, repliceren met een andere naam) .
Oplossing 3: bestanden opnieuw aan de repository toevoegen
Als je al regels hebt toegevoegd aan .gitignore maar de bestanden die je wilt negeren al zijn toegevoegd, kunnen we de bestanden opnieuw toevoegen. Toevoegen betekent dat we alles uit de Git-index verwijderen en vervolgens alles weer in je repository toevoegen. Wanneer we opnieuw bestanden toevoegen vanuit het niets, zullen de regels die je hebt toegevoegd in .gitignore in gedachten worden gehouden en alleen de juiste bestanden worden toegevoegd.
Opmerking: U moet ook ergens anders een back-up van uw code maken voordat u deze oplossing uitvoert. Het is altijd goed om een back-up te hebben voor het geval dat.
- Voer de volgende opdracht uit. Dit zal de paden naar je bestanden op een recursieve manier unstagen en verwijderen uit de git-index.
git rm -r --cached.
- Nadat dit is uitgevoerd, moet u de volgende opdracht uitvoeren. Hiermee worden al je bestanden weer toegevoegd en aangezien .gitignore de regels heeft, worden alleen de juiste bestanden bijgewerkt.
git toevoegen.
- Nu zullen we al uw bestanden terug in de index vastleggen met behulp van de onderstaande code:
git commit -m ".gitignore werkt nu"
Inspecteer nu uw bestanden en kijk of het probleem is opgelost en u kunt .gitignore zonder problemen opnieuw gebruiken.