Wat zijn de verschillen tussen .gitignore
en .gitkeep
? Zijn ze hetzelfde met een andere naam, of hebben ze allebei een andere functie?
Het lijkt erop dat ik niet veel documentatie kan vinden op .gitkeep
.
Antwoord 1, autoriteit 100%
.gitkeep
is niet gedocumenteerd, omdat het geen functie van Git is.
Git kan geen volledig lege map toevoegen. Mensen die lege mappen in Git willen bijhouden, hebben de conventie gemaakt om bestanden met de naam .gitkeep
in deze mappen te plaatsen. Het bestand kan van alles worden genoemd; Git kent geen speciale betekenis toe aan deze naam.
Er is een concurrerende conventie van het toevoegen van een .gitignore
-bestand aan de lege mappen om ze bij te houden, maar sommige mensen zien dit als verwarrend omdat het doel is om de lege mappen te behouden, niet om ze te negeren ; .gitignore
wordt ook gebruikt om bestanden weer te geven die door Git genegeerd moeten worden bij het zoeken naar niet-getrackte bestanden.
Antwoord 2, autoriteit 10%
.gitkeep
is slechts een tijdelijke aanduiding. Een dummy-bestand, zodat Git de directory niet zal vergeten, aangezien Git alleen bestanden bijhoudt.
Als je een lege map wilt en ervoor zorgt dat deze ‘schoon’ blijft voor Git, maak dan een .gitignore
aan met daarin de volgende regels:
# .gitignore sample
###################
# Ignore all files in this dir...
*
# ... except for this one.
!.gitignore
Als je wilt dat slechts één type bestanden zichtbaar is voor Git, is hier een voorbeeld hoe je alles eruit kunt filteren, behalve .gitignore en alle .txt
bestanden:
# .gitignore to keep just .txt files
###################################
# Filter everything...
*
# ... except the .gitignore...
!.gitignore
# ... and all text files.
!*.txt
(‘#’ geeft opmerkingen aan.)
Antwoord 3, autoriteit 3%
.gitignore
is een tekstbestand met een lijst van bestanden in je directory die git zal negeren of niet zal toevoegen/bijwerken in de repository.
.gitkeep
Aangezien Git lege mappen verwijdert of niet toevoegt aan een repository, is .gitkeep een soort hack (ik denk niet dat het officieel genoemd wordt als onderdeel van Git) om lege mappen in de repository te houden.
Voer gewoon een touch /path/to/emptydirectory/.gitkeep
om het bestand toe te voegen, en Git zal nu in staat zijn deze map in de repository te behouden.
Antwoord 4
Veel mensen gebruiken liever gewoon .keep
omdat de conventie niets met git te maken heeft.
Antwoord 5
Dit is geen antwoord op de oorspronkelijke vraag “Wat zijn de verschillen tussen .gitignore en .gitkeep?” maar hier posten om mensen te helpen op een eenvoudige manier lege dir bij te houden. Om een lege map bij te houden en te weten dat .gitkeep
geen officieel onderdeel is van git,
voeg gewoon een leeg (zonder inhoud) .gitignore
-bestand toe.
Dus voor b.v. als je /project/content/posts
hebt en soms is de map posts
mogelijk leeg, maak dan een leeg bestand /project/content/posts/.gitignore
aan zonder inhoud om die map en zijn toekomstige bestanden in git bij te houden.