Comment suivre les répertoires mais pas leurs fichiers avec Git?

J’ai récemment commencé à utiliser Git et j’ai des problèmes avec une seule chose. Comment puis-je suivre les répertoires sans suivre leur contenu?

Par exemple, le site sur lequel je travaille autorise le téléchargement. Je veux suivre le répertoire des téléchargements pour qu’il soit créé lors de la création de twigs, etc.

Dans mon .gitignore j’ai les éléments suivants:

  uploads /*.* 

Ont également essayé (qui ignore tout le répertoire):

  uploads / 

Ce répertoire peut également contenir des sous-répertoires (uploads / thumbs / uploads / videos /). J’aimerais pouvoir les suivre mais pas leurs fichiers.

Est-ce possible avec Git? J’ai cherché partout sans trouver de réponse.

Git ne suit pas les répertoires, il assure le suivi des fichiers. Pour ce faire, vous devez suivre au moins un fichier. Donc, en supposant que votre fichier .gitignore ressemble à ceci:

 upload/* 

Tu peux le faire:

 $ touch upload/.placeholder $ git add -f upload/.placeholder 

Si vous oubliez le -f vous verrez:

 $ git add upload / .placeholder
 Les chemins suivants sont ignorés par l'un de vos fichiers .gitignore:
 télécharger
 Utilisez -f si vous voulez vraiment les append.
 fatal: pas de fichiers ajoutés

Alors quand vous faites le git status vous verrez:

 # Sur le maître de la twig
 #
 # Commit initial
 #
 # Changements à engager:
 # (utilisez "git rm --cached ..." pour désinstaller)
 #
 # nouveau fichier: upload / .placeholder
 #

Évidemment, vous pouvez alors faire:

 $ touch upload/images/.placeholder $ git add -f upload/images/.placeholder 

J’ai écrit à ce sujet ici .

Ajoutez un .gitignore dans le répertoire.

La meilleure réponse que j’ai trouvée est d’inclure un fichier .gitignore dans votre dossier de téléchargement avec ce contenu

 # Ignore everything in this directory * # Except this file !.gitignore 

Voici comment vous pouvez append un répertoire vide à un repository Git?

La meilleure solution à ce jour:

1) Créez un fichier .gitignore

2) Ecrire à l’intérieur:

 * */ !.gitignore 

3) Ajoutez le fichier .gitignore au dossier souhaité.

Source: https://stackoverflow.com/a/5581995/2958543