Met Git zijn er sommige documenten of folders wat Git herkent en kan gebruiken voor eigen acties.

.git/

De .git folder is een verborgen map in de root van een project. De map bevat alle metadata en objecten die Git nodig heeft om de repository te herkennen en beheren. Hierbij kan je denken aan de commitgeschiedenis, configuraties, branches, tags en stashes. Verder zijn er ook nog folders in de .git folder die bepaalde taken hebben

  • objects/: Bevat alle objecten die Git nodig heeft voor het versiebeheer (zoals commits).
  • refs/: Bevat verwijzingen naar branches en tags.
  • config: De repository-specifieke configuratie.
  • HEAD: Bevat een verwijzing naar de huidige actieve branch.

.git/hooks/

De hooks subfolder bevat scripts die automatisch worden uitgevoerd door Git bij bepaalde gebeurtenissen of acties in de levenscyclus van een repository. Deze gebeurtenissen omvatten zaken zoals commits, merges, pushes, en meer.

Git hooks geven je de mogelijkheid om taken te automatiseren, zoals het valideren van code voordat je deze commit, het versturen van meldingen na een push, of het controleren van codeformattering. Een paar voorbeelden van zo’n hook is een pre-commit, post-commit en pre-push.

.gitignore

.gitignore is een document waarmee Git kan weten welke folder en/of bestanden niet mee genomen moeten worden in een commit. Hiermee kan je ervoor zorgen dat bestanden/folders niet getracked worden door Git. Dit bestand heeft ook geen bestandsextensie en moet gewoon als .gitignore in een project worden geplaatst.

Let op

Het is belangrijk om aan het begin van een project een .gitignore al aan te maken. Als bestanden eenmaal getracked worden, kan het wat moeite kosten om deze weer te untracken.

.gitkeep

Als een folder leeg is of als de content van een folder in de gitignore is opgenomen, wordt de map niet getracked (omdat git alleen bestanden kan tracken). Hierdoor kan deze niet naar Git worden gecommit en gepusht.

Als een .gitkeep file in een folder staat, dan zal Git deze folder tracken. De .gitkeep zal ook zichtbaar zijn in de repository. De naam voor het bestand (.gitkeep) is een informele conventie voor de benaming voor zo’n bestand. Hiervoor kunnen ook andere namen gebruikt worden, zoals .empty, placeholder of keepme.md.

.github

De .github folder wordt gebruikt om verschillende configuraties in op te nemen.

  • Issue templates
    • De folder .github/ISSUE_TEMPLATE/ bevat .md bestanden met een format voor issues op github (10. GitHub website).
  • Pull requests templates
    • Dit kan een folder (.github/PULL_REQUEST_TEMPLATE/) of markdown bestand (.github/PULL_REQUEST_TEMPLATE.md) zijn.
  • Workflows (9. GitHub Actions)
    • In de .github/workflows folder kunnen workflow bestanden worden geplaatst zodat Git deze kan herkennen.
  • Overige
    • Verder kunnen nog bestanden zoals CODE_OF_CONDUCT.md of CONTRIBUTING.md worden geplaatst in de .github folder om de richtlijnen van het project aan te geve.

Bronnen

Git hooks: https://git-scm.com/book/ms/v2/Customizing-Git-Git-Hooks


Volgende stap: 9. GitHub Actions