W3docs

git add

See the detailed information about the git add command, the working principles with examples, common options, such as interactive mode and editing patches.

Описание

Команда git add добавляет изменения из рабочего каталога в область подготовки. С её помощью вы сообщаете Git, что хотите включить обновления определённого файла в следующий коммит. Однако, чтобы зафиксировать эти изменения, необходимо также выполнить git commit. Вместе с упомянутыми выше командами, git status также полезна для проверки состояния рабочего каталога и области подготовки.

gitadd

Принципы работы

Команды git add и git commit используются для записи версий проекта в историю репозитория. Они необходимы каждому пользователю Git, поскольку составляют основу рабочего процесса Git.

Во время разработки проекта вы сначала редактируете файлы в рабочем каталоге. Когда копия текущего состояния готова к сохранению, вы помещаете изменения в область подготовки с помощью git add. Команду git add следует выполнять каждый раз, когда вы изменяете файл.

Область подготовки

Основная роль команды git add — переносить изменения из рабочего каталога в область подготовки Git. Область подготовки Git — одна из его самых особенных характеристик, которая позволяет собирать все связанные изменения в очень точные снимки состояния. Только после этого вы можете зафиксировать эти изменения в истории проекта.

Часто используемые параметры

  1. Подготовка изменений в <file> для следующего коммита:

git add file

git add <file>
  1. Подготовка всех изменений в <directory> для следующего коммита:

git add directory

git add <directory>
  1. Подготовка всех изменений в уже отслеживаемых файлах:

git add -u

git add -u
  1. Интерактивный режим patch (подготовка изменений по отдельным фрагментам):

git add -p

git add -p

Примеры использования git add

Команды git add и git commit используются для создания первого коммита текущего каталога, а также для записи изменений в существующие файлы.

После начала проекта вы можете добавлять новые файлы, передавая их путь в git add.

Добавить файл

git add hello.py

Зафиксировать изменения

git commit

Интерактивный режим

Интерактивная сессия подготовки позволяет выбрать части файла, которые будут добавлены в следующий коммит. Вам будет показан фрагмент изменений и предложена команда. Доступные варианты:

  • y - подготовить фрагмент
  • n - не подготавливать фрагмент
  • q - выйти; не подготавливать фрагмент и все оставшиеся
  • a - подготовить фрагмент и все последующие фрагменты в файле
  • d - не подготавливать фрагмент и все последующие фрагменты в файле
  • g - выбрать фрагмент для перехода
  • / - искать фрагмент, соответствующий заданному регулярному выражению
  • j - перейти к следующему фрагменту
  • J - перейти к предыдущему фрагменту
  • k - перейти к предыдущему фрагменту
  • K - перейти к предыдущему невыбранному фрагменту
  • s - разделить текущий фрагмент на более мелкие
  • e - вручную отредактировать текущий фрагмент
  • ? - вывести справку

Редактирование патчей

Вызов git add -e или выбор e в интерактивном селекторе фрагментов открывает патч в вашем редакторе. После выхода из редактора результат применяется к индексу. Вы можете вносить в патч любые изменения, но некоторые правки могут привести к сложному выводу или даже сделать патч неприменимым. Если вы хотите полностью отказаться от операции, просто удалите все строки патча. Ниже приведены некоторые распространённые элементы, которые можно увидеть в патче, и какие операции редактирования для них имеют смысл.

Строки, начинающиеся с +, обозначают добавленное содержимое. Вы можете удалить их, чтобы не подготавливать любые добавленные строки.

Строки, начинающиеся с -, обозначают удалённое содержимое. Чтобы не подготавливать их удаление, можно заменить - на пробел ( ).

Изменённое содержимое показывается строками - (удаление старого содержимого), за которыми следуют строки + (добавление заменяющего содержимого). Чтобы не подготавливать изменение, замените строки - на пробелы и удалите строки +. Обратите внимание, что изменение только одной половины пары может привести к запутанным изменениям в индексе.

Практика

Практика

What are the functionalities and options associated with the 'git add' command?