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