I have a question about adding files in git. I have found multiple stackoverflow questions about the difference between git add .
and git add -a
, git add --all
, git add -A
, etc. But I've been unable to find a place that explains what git add *
does. I've even looked at the git add man page, but it didn't help. I've been using it in place of git add .
and my co-worker asked me why. I didn't have an answer. I've just always used git add *
.
Are git add .
and git add *
the same? Does one add changed files from the current directory only, while the other adds files from the current directory and subdirectories (recursively)?
There's a great chart listed on one of the other stack questions that shows the difference between git add -A
git add .
and git add -u
, but it doesn't have git add *
.
Note: I understand what it means to use the asterisk as a wildcard (add all files with a given extension). For example, git add *.html
would add all files that have a .html
extension (but ignore .css
, .js
, etc).
Thanks for the help!
git add .
again, and it staged a deleted file no problem, unlike theX
in that row would suggest. – VorticellaCMD.EXE
, you don't have a fancy shell that expands*
for you, so this passes the literal*
to Git. The result is slightly different than if you are using bash or some other Unix-like shell that does expand*
for you. – Bookstack