Wat zijn de verschillen tussen .gitignore en .gitkeep?

Wat zijn de verschillen tussen .gitignoreen .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%

.gitkeepis 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 .gitkeepin 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 ; .gitignorewordt ook gebruikt om bestanden weer te geven die door Git genegeerd moeten worden bij het zoeken naar niet-getrackte bestanden.


Antwoord 2, autoriteit 10%

.gitkeepis 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 .gitignoreaan 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 .txtbestanden:

# .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/.gitkeepom 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 .keepomdat 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 .gitkeepgeen officieel onderdeel is van git,

voeg gewoon een leeg (zonder inhoud) .gitignore-bestand toe.

Dus voor b.v. als je /project/content/postshebt en soms is de map postsmogelijk leeg, maak dan een leeg bestand /project/content/posts/.gitignoreaan zonder inhoud om die map en zijn toekomstige bestanden in git bij te houden.

Other episodes