Quali sono le differenze tra .gitignore e .gitkeep?

Quali sono le differenze tra .gitkeep e .gitkeep ? Sono la stessa cosa con un nome diverso o entrambi hanno una funzione diversa? Non riesco a trovare molta documentazione su .gitkeep .

.gitkeep non è documentato, perché non è una funzionalità di Git.

Git non può aggiungere una directory completamente vuota . Le persone che vogliono tenere traccia delle directory vuote in Git hanno creato la convenzione di mettere i file chiamati .gitkeep in queste directory. Il file potrebbe essere chiamato qualsiasi cosa; Git non assegna nessun significato speciale a questo nome.

C’è una convenzione in competizione per aggiungere un file .gitignore alle directory vuote per far sì che vengano tracciati, ma alcune persone lo vedono come confuso poiché l’objective è quello di mantenere le directory vuote, non di ignorarle; .gitignore è anche usato per elencare i file che dovrebbero essere ignorati da Git quando si cercano file non tracciati.

.gitkeep è solo un segnaposto. Un file fittizio, quindi git non dimenticherà la directory, dato che git traccia solo i file.


Se vuoi una directory vuota e assicurati che rimanga “pulita” per git, crea un .gitignore contenente le seguenti righe all’interno:

 # .gitignore sample ################### # ignore all files in this dir... * # ... except for this one. !.gitignore 

Se si desidera visualizzare un solo tipo di file per git, ecco un esempio su come filtrare tutto, tranne .gitignore e tutti i file .txt :

 # .gitignore to keep just .txt files ################################### # filter everything... * # ... except the .gitignore... !.gitignore # ... and all text files. !*.txt 

(‘#’ indica i commenti.)

 .gitignore 

è un file di testo che comprende un elenco di file nella directory che git ignorerà o non aggiungerà / aggiornerà nel repository.

 .gitkeep 

Dato che git rimuove o non aggiunge directory vuote ad un repository .gitkeep è una sorta di hack (non credo sia ufficialmente chiamato come parte di git) per mantenere vuote le directory nel repository.

basta fare un touch /path/to/emptydirectory/.gitkeep per aggiungere il file e git sarà ora in grado di mantenere questa directory nel repository.