git init
git add *
git commit -a -m ‘initial commit and release!’
Что делает git add * по сравнению с git add . (что я обычно делаю) они одинаковы?
Ответ 1
git add * добавит все пути, которые являются результатом расширения оболочки *, тогда как git add . сообщит git добавить текущий каталог.
git add * не будет добавлять пути, начинающиеся с ., поскольку расширение оболочки * считает, что это "скрытые" пути.
git add * также будет терпеть неудачу, если какой-либо расширенный путь в настоящее время игнорируется git, потому что git считает это ошибкой, если вы явно указываете игнорируемый путь, не передавая флаг -f (force), чтобы показать, что вы действительно хотите добавить проигнорированный путь.
Если вы получите git для расширения glob (git add '*'), он добавит "скрытые" файлы и пропустит игнорируемые файлы. В этом случае он будет работать так же, как git add ..
Ответ 2
По умолчанию передача каталога в git add будет рекурсивно добавлять его подкаталоги и файлы.
Подстановочный знак * будет расширяться вашей оболочкой как имена файлов ниже текущего каталога.
И знаете, в Unix . ссылается только на текущий каталог, поэтому эти две команды эквивалентны. Хотя * обрабатывается оболочкой, а . обрабатывается git, они делают то же самое.