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).
- De folder
- Pull requests templates
- Dit kan een folder (
.github/PULL_REQUEST_TEMPLATE/
) of markdown bestand (.github/PULL_REQUEST_TEMPLATE.md
) zijn.
- Dit kan een folder (
- Workflows (9. GitHub Actions)
- In de
.github/workflows
folder kunnen workflow bestanden worden geplaatst zodat Git deze kan herkennen.
- In de
- Overige
- Verder kunnen nog bestanden zoals
CODE_OF_CONDUCT.md
ofCONTRIBUTING.md
worden geplaatst in de.github
folder om de richtlijnen van het project aan te geve.
- Verder kunnen nog bestanden zoals
Bronnen
Git hooks: https://git-scm.com/book/ms/v2/Customizing-Git-Git-Hooks
Volgende stap: 9. GitHub Actions