What's the difference between git add * and git add ., if any?

git, git-add

Solution

`git add *` will add all the paths that are the result of the shell expansion of `*` whereas `git add .` will tell git to add the current directory.

`git add *` won't add paths that begin with a `.` as the shell expansion of `*` considers these to be "hidden" paths.

`git add *` will also fail if any expanded path is currently being ignored by git because git considers it an error if you explicitly specify an ignored path without passing the `-f` (force) flag to show that you really want to add an ignored path.

If you get git to expand the glob (`git add '*'`) it will add "hidden" files and skip over ignored files. It would work the same as `git add .` in this case.

Problem

git animals had this series of commands: ``` git init git add * git commit -a -m ‘initial commit and release!’ ``` What does `git add *` do compared to `git add .` (which I normally do) are they the same?

Original source