Ответ 1
Из документов:
git commit -a автоматически обрабатывает все отслеживаемые измененные файлы перед фиксацией. Если вы считаете, что этап добавления git добавления рабочего процесса слишком громоздкий, git позволяет пропустить эту часть с опцией -a. Это в основном говорит git запускать git add в любом файле, который "отслеживается" - то есть любой файл, который был в вашей последней фиксации и был изменен. Это позволяет вам выполнять более рабочий процесс в стиле Subversion, если вы хотите просто редактировать файлы, а затем запускать git commit -a, когда вы хотите сделать снимок всего, что было изменено. Вы все еще должны запустить git добавить для начала отслеживания новых файлов, хотя, как и Subversion.
Использование опции -am
позволяет вам добавлять и создавать сообщение для фиксации в одной команде.