Wat is .gitignore precies?

Ik heb zojuist een Github-repository gemaakt en vroeg me af waar het bestand .gitignorevoor 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%

.gitignorevertelt 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 .gitignoremet items die je wilt negeren om te committen.

Belangrijk is ookgit statuseen van de meest gebruikte commando’s is waar je wilt dat git statusde bestanden weergeeft die zijn gewijzigd.

Je zou willen dat je git statuslijst er schoon uitzietvan ongewenste bestanden. Ik heb bijvoorbeeld a.cpp, b.cpp, c.cpp, d.cpp & e.cppIk wil dat mijn git statushet volgende vermeldt:

git status
a.cpp
b.cpp
c.cpp
d.cpp
e.cpp

Ik wil niet dat git statusgewijzigde 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 statusom deze tussenliggende tijdelijke bestanden op te sommen & door ze per ongeluk in de repo te plaatsen, zou ik een .gitignoremoeten maken die iedereen doet. Het enige wat ik moet doen is een lijst maken van de bestanden & mappen in de .gitignoredie ik wil uitsluiten van committen.

Hierna volgt mijn .gitignoreom 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:

  1. bijgehouden – een bestand dat eerder is gestaged of vastgelegd;
  2. untracked – een bestand dat niet gestaged of vastgelegd is; of
  3. 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_modulesof /packages
  • gecompileerde code, zoals .o, .pycen .classbestanden
  • maak uitvoermappen, zoals /bin, /outof /target
  • bestanden gegenereerd tijdens runtime, zoals .log, .lockof .tmp
  • verborgen systeembestanden, zoals .DS_Storeof Thumbs.db
  • persoonlijke IDE-configuratiebestanden, zoals .idea/workspace.xml

Genegeerde bestanden worden bijgehouden in een speciaal bestand met de naam .gitignoredat is ingecheckt in de root van je repository. Er is geen expliciet git negeer commando: in plaats daarvan moet het .gitignorebestand 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.

Other episodes