为什么“git add *”排除.gitignore?
问题描述:
我有.gitignore文件与排除文件的名称。当我删除.git文件夹并做git init
,在git add *
后,我期望所有文件被添加,不会被.gitignore忽略。但是,.gitignore在git status
中显示为untracked文件,即使我在.gitignore中包含!.gitignore
,我也必须手动将其添加到git add .gitignore
。为什么“git add *”排除.gitignore?
答
因为在你的命令*
实际上是从当前目录文件(和目录)的名称进行替换除了那些盯着W¯¯.
。如果你想也包括的.gitignore你应该叫:
git add * .gitignore
如果你想包括所有的点文件称:如果你正在使用的zsh
git add * .[!.]*
,您可以用更简单的模式:
git add * .*
看来你的shell忽略glob扩展中的点文件。如果不知道您使用了哪个shell以及如何配置它,则无法多说。无论如何,这是一个简单的“如何使用我的操作系统”的问题,与编程无关。就我个人而言,我总是使用'git add .'并对整个业务进行旁观。 –
阅读此:http://unix.stackexchange.com/questions/70928/shell-wildcards-and-dot-files –