Давайте инициализируем новый проект.
$mkdirпроект
$CDпроект
$git init
Инициализированный пустой репозиторий Gitв /Пользователи/zakh_eecs/_Работа/LearnGIT/git_add/проект/.идти/
$выбросил 'Новый проект' >ReadMe.txt
$git добавитьReadMe.txt
$git commit -м 'Начальная фиксация'
[мастер(рут-коммит)47b9af1]Начальная фиксация
1 файлизмененный,1вставка(+)
создать режим100644ReadMe.txt
В этом проекте мы добавили файл ReadMe.txt. Мы использовали команду git add, чтобы добавить ReadMe.txt. Команда добавления предназначена не только для добавления файлов. Он также добавляет любую модификацию файла. В этом руководстве мы будем только добавлять и удалять файлы, чтобы не усложнять задачу. Но думайте о команде add как о добавлении изменений в промежуточную область. Затем вы должны использовать команду фиксации, чтобы изменения были официальными.
Когда вы имеете дело с большим количеством файлов и папок, сложно добавлять каждое изменение по отдельности. Итак, вы можете использовать следующие команды:
$git добавить.
$git добавить -К
Давайте посмотрим, как ведут себя две команды:
$ touch a.txt b.txt c.txt
$ git add.
$ git status
О мастере филиала
Изменения, которые необходимо зафиксировать:
(используйте 'git reset HEAD ...', чтобы отключить сцену)
новый файл: a.txt
новый файл: b.txt
новый файл: c.txt
$ git commit -m 'Добавить a.txt, b.txt, c.txt'
[master 9ca90fc] Добавить a.txt, b.txt, c.txt
Изменено 3 файла, 0 вставок (+), 0 удалений (-)
создать режим 100644 a.txt
создать режим 100644 b.txt
режим создания 100644 c.txt $трогатьx.txt y.txt z.txt
$git добавить -К
$git статус
О мастере филиала
Изменения, которые необходимо зафиксировать:
(использовать'git reset HEAD ...'убрать сцену)
новый файл: x.txt
новый файл: y.txt
новый файл: z.txt
$git commit -м 'Добавить x.txt, y.txt, z.txt'
[мастер 8af8c12]Добавить x.txt, y.txt, z.txt
3файлы изменены,0вставки(+),0удаления(-)
создать режим100644x.txt
создать режим100644y.txt
создать режим100644z.txt
Оба варианта работают одинаково.
Для дальнейшего исследования давайте создадим ситуацию, когда мы добавляем что-то на корневом уровне рабочего каталога, а затем добавляем другие файлы в папку:
$трогать 1.текст
$mkdirновый
$CDновый
$трогатьm.txt n.txt o.txt
$git добавить.
$git статус
О мастере филиала
Изменения, которые необходимо зафиксировать:
(использовать'git reset HEAD ...'убрать сцену)
новый файл: m.txt
новый файл: n.txt
новый файл: o.txt
Не отслеживаемые файлы:
(использовать'git add ...'включатьвчто будет совершено)
../1.текст
Обратите внимание, что Git не добавил файл 1.txt в папку более высокого уровня.
Если мы создали папку с именем nested with d.txt file и использовали команду git add. снова, мы видим, что o.txt был добавлен, но 1.txt еще не добавлен.
$mkdirвложенный$трогатьвложенный/d.txt
$git добавить.
$git статус
О мастере филиала
Изменения, которые необходимо зафиксировать:
(использовать'git reset HEAD ...'убрать сцену)
новый файл: m.txt
новый файл: n.txt
новый файл: вложенный/d.txt
новый файл: o.txt
Не отслеживаемые файлы:
(использовать'git add ...'включатьвчто будет совершено)
../1.текст
Теперь давайте воспользуемся командой git add -A:
$git добавить -К$git статус
О мастере филиала
Изменения, которые необходимо зафиксировать:
(использовать'git reset HEAD ...'убрать сцену)
новый файл: ../1.текст
новый файл: m.txt
новый файл: n.txt
новый файл: вложенный/d.txt
новый файл: o.txt
Теперь файл 1.txt в папке был добавлен в область подготовки.
Вот как выглядят папки
| --1.txt
| --ReadMe.txt
| --a.txt
| --b.txt
| --c.txt
| --x.txt
| --y.txt
| --z.txt
`- новый
| --m.txt
| --n.txt
| --o.txt
`- вложенный
| --d.txt
Итак, когда вы используете git add. команда, она добавит все изменения с этого уровня. Но когда вы используете параметр git add -A, он будет искать изменения во всем модуле и добавлять их.
Заключение
Команда Git add предоставляет мощные способы добавления измененных файлов. Вы можете использовать естественную иерархию каталогов ваших кодов для управления тем, что будет добавлено.