Comment puis-je ajouter des fichiers commençant par un point (fichiers cachés) dans git repo? Git semble toujours les ignorer.
Quand je tape git add .
, fichiers dot dans GIT_DIR
sont ajoutés, mais pas à partir de sous-répertoires. D'autre part, git add subdir/.dotfile
ne fonctionnera pas.
J'ai essayé git add -f
et mettre !.*
dans GIT_DIR/.git/info/exclude
. Pas de chance.
git add .
et git add dir/.dot
fonctionne bien pour moi avec les versions 1.6.6.1 et 1.7.0 sans fioritures de Git que j'ai à portée de main en ce moment.
% git --version
git version 1.6.6.1
% git ls-files -o
.baz/baz
.foo
bar/.bar
quuux/quuux
quux
% git add .
% git ls-files -o
% git ls-files
.baz/baz
.foo
bar/.bar
quuux/quuux
quux
Quelle version de Git utilisez-vous? Vos sous-répertoires sont-ils réellement des sous-modules (qui sont gérés indépendamment)?
Les "fichiers dot" ne sont pas exclus par défaut, mais peut-être qu'un peu de configuration sur votre système, référentiel ou arborescence de travail les a définis de cette façon. S'ils apparaissent dans git ls-files --exclude-standard -oi
alors ils sont ignorés et "!. *" est la bonne façon de les "ignorer". Mais pour être efficace, ce modèle doit être au bon endroit. Les ignorés sont traités dans cet ordre:
git config core.excludesfile
(qui pourrait être défini par GIT_EDITOR=echo git config --system --edit
pour obtenir son chemin d'accès)).Lorsqu'un nom de chemin correspond à un modèle dans un fichier, les fichiers suivants ne sont pas consultés. La dernière correspondance de chaque fichier "gagne". Un modèle dans $ GIT_DIR/info/exclude ne peut jamais remplacer un modèle dans un fichier . Gitignore. Donc, si les fichiers sont ignorés (par git ls-files --exclude-standard -oi
) et si "!. *" dans $ GIT_DIR/info/exclude est inefficace, alors vérifiez toutes les .gitignore
fichiers pour le coupable.
Vous pouvez les ajouter spécifiquement par nom de chemin, par exemple,
git add */.*
ou
find . -name '.[a-z]*' -exec git add '{}' ';'
(Il est bon d'être prudent avec le -name
parce que vous ne voulez pas nécessairement récupérer chaque répertoire avec son .
entrée.)
Mais de loin la façon la plus simple de le faire est avec git gui
. Cliquez simplement sur les fichiers.
Fait intéressant sous Windows 10 avec git version 2.12.0.windows.1 fonctionnant sous "Git-Bash", un "git add. *" Échoue également. Les fichiers tels que .classpath et .project etc. ne sont pas ajoutés et ne sont donc pas validés ultérieurement. Mais bon, ce n'est pas la bonne façon de déposer un rapport de bogue.