Подтвердить что ты не робот

Какая разница между git add * и git add., Если таковые имеются?

git животные имели следующую команду:

git init
git add *
git commit -a -m ‘initial commit and release!’

Что делает git add * по сравнению с git add . (что я обычно делаю) они одинаковы?

4b9b3361

Ответ 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, они делают то же самое.