Ik heb zojuist een Github-repository gemaakt en vroeg me af waar het bestand .gitignore
voor was. Ik begon er geen te maken, maar voegde er een toe omdat de meeste repositories er een hebben.
Moet ik er een hebben? Kan/mag ik het gewoon negeren, of heeft het een nut?
Ik heb wat onderzoek gedaan naar het onderwerp, maar kon geen concrete verklaring vinden.
Antwoord 1, autoriteit 100%
.gitignore
vertelt git welke bestanden (of patronen) het moet negeren. Het wordt meestal gebruikt om te voorkomen dat tijdelijke bestanden uit uw werkmap worden vastgelegd die niet nuttig zijn voor andere medewerkers, zoals compilatieproducten, tijdelijke bestanden die IDE’s maken, enz.
Je kunt de volledige details hiervinden.
Antwoord 2, autoriteit 24%
Het is een lijst met bestanden waarvan je wilt dat git deze negeert in je werkmap.
Stel dat je een Mac gebruikt en dat je .DS_Store-bestanden in al je mappen hebt staan. Je wilt dat git ze negeert, dus je voegt .DS_Store toe als een regel in .gitignore. En zo verder.
De git-documenten vertellen je alles wat je moet weten: http://git-scm.com/docs/gitignore
Antwoord 3, autoriteit 14%
Als je een commit doet, wil je niet per ongeluk tijdelijke bestanden toevoegen of specifieke mappen bouwen. Gebruik daarom een .gitignore
met items die je wilt negeren om te committen.
Belangrijk is ookgit status
een van de meest gebruikte commando’s is waar je wilt dat git status
de bestanden weergeeft die zijn gewijzigd.
Je zou willen dat je git status
lijst er schoon uitzietvan ongewenste bestanden. Ik heb bijvoorbeeld a.cpp, b.cpp, c.cpp, d.cpp & e.cpp
Ik wil dat mijn git status
het volgende vermeldt:
git status
a.cpp
b.cpp
c.cpp
d.cpp
e.cpp
Ik wil niet dat git status
gewijzigde bestanden op deze manier weergeeft met de tussenliggende objectbestanden & bestanden uit de bouwmap
git status
a.cpp
b.cpp
c.cpp
d.cpp
e.cpp
.DS_Store
/build/program.o
/build/program.cmake
Daarom, om mezelf te bevrijden van git status
om deze tussenliggende tijdelijke bestanden op te sommen & door ze per ongeluk in de repo te plaatsen, zou ik een .gitignore
moeten maken die iedereen doet. Het enige wat ik moet doen is een lijst maken van de bestanden & mappen in de .gitignore
die ik wil uitsluiten van committen.
Hierna volgt mijn .gitignore
om te voorkomen dat onnodige bestanden worden vastgelegd
/*.cmake
/*.DS_Store
/.user
/build
Antwoord 4, autoriteit 4%
Er zijn bestanden waarvan je niet wilt dat Git incheckt. Git ziet elk bestand in je werkkopie als een van de volgende drie dingen:
- bijgehouden – een bestand dat eerder is gestaged of vastgelegd;
- untracked – een bestand dat niet gestaged of vastgelegd is; of
- genegeerd – een bestand waarvan Git expliciet is verteld om het te negeren.
Genegeerde bestanden zijn meestal gebouwde artefacten en door de machine gegenereerde bestanden die kunnen worden afgeleid van uw repositorybron of die anderszins niet moeten worden vastgelegd. Enkele veelvoorkomende voorbeelden zijn:
- dependency-caches, zoals de inhoud van
/node_modules
of/packages
- gecompileerde code, zoals
.o
,.pyc
en.class
bestanden - maak uitvoermappen, zoals
/bin
,/out
of/target
- bestanden gegenereerd tijdens runtime, zoals
.log
,.lock
of.tmp
- verborgen systeembestanden, zoals
.DS_Store
ofThumbs.db
- persoonlijke IDE-configuratiebestanden, zoals
.idea/workspace.xml
Genegeerde bestanden worden bijgehouden in een speciaal bestand met de naam .gitignore
dat is ingecheckt in de root van je repository. Er is geen expliciet git negeer commando: in plaats daarvan moet het .gitignore
bestand met de hand worden bewerkt en vastgelegd als je nieuwe bestanden hebt die je wilt negeren. .gitignore
-bestanden bevatten patronen die overeenkomen met bestandsnamen in uw repository om te bepalen of ze al dan niet moeten worden genegeerd. Hier is een voorbeeld.gitignore
-bestand.
Kijk voor meer informatie op deze link
Antwoord 5, autoriteit 3%
Hoofddoel van .gitignore – zo vermijd je het toevoegen van irrelevante bestanden enz. Git
Ik heb veel persoonlijke notities / krabbels in bepaalde repositories: ze zijn nuttig voor mij, maar niet voor iemand anders. Ik zou niet willen dat het naar github wordt geüpload omdat het iedereen die het leest in verwarring zou brengen. Het goede ding is dat ik git kan vragen om die bestanden te “negeren”. De enige kosten van deze aanpak zijn dat ik die notities niet kan herstellen als mijn computer crasht, enz.