Давайте инициализируем новый проект.
$ mkdir проект$ cd project
$ git init
Инициализированный пустой репозиторий Git в / Users / zakh_eecs / _work / LearnGIT / git_add / project /.git /
$ echo "Новый проект"> ReadMe.текст
$ git add ReadMe.текст
$ git commit -m "Начальная фиксация"
[master (root-commit) 47b9af1] Начальная фиксация
1 файл изменен, 1 вставка (+)
режим создания 100644 ReadMe.текст
В этом проекте мы добавили ReadMe.txt файл. Мы использовали команду «git add», чтобы добавить ReadMe.текст. Команда добавления предназначена не только для добавления файлов. Также добавляет любую модификацию файла. В этом руководстве мы будем только добавлять и удалять файлы, чтобы не усложнять задачу. Но думайте о команде add как о добавлении изменений в промежуточную область. Затем вы должны использовать команду фиксации, чтобы сделать изменения официальными.
Когда вы имеете дело с большим количеством файлов и папок, сложно добавлять каждое изменение по отдельности. Итак, вы можете использовать следующие команды:
$ git add .$ git add -A
Давайте посмотрим, как ведут себя две команды:
$ прикоснитесь к.txt b.txt c.текст$ git add .
$ git status
О мастере филиала
Изменения, которые необходимо зафиксировать:
(используйте "git reset HEAD
новый файл: a.текст
новый файл: b.текст
новый файл: c.текст
$ git commit -m "Добавить.txt, b.txt, c.текст"
[master 9ca90fc] Добавить.txt, b.txt, c.текст
Изменено 3 файла, 0 вставок (+), 0 удалений (-)
создать режим 100644 a.текст
создать режим 100644 b.текст
создать режим 100644 c.txt $ touch x.txt y.txt z.текст
$ git add -A
$ git status
О мастере филиала
Изменения, которые необходимо зафиксировать:
(используйте "git reset HEAD
новый файл: x.текст
новый файл: y.текст
новый файл: z.текст
$ git commit -m "Добавить x.txt, y.txt, z.текст"
[master 8af8c12] Добавить x.txt, y.txt, z.текст
Изменено 3 файла, 0 вставок (+), 0 удалений (-)
создать режим 100644 x.текст
режим создания 100644 г.текст
режим создания 100644 z.текст
Оба варианта работают одинаково.
Для дальнейшего исследования давайте создадим ситуацию, когда мы добавим что-то на корневом уровне рабочего каталога, а затем добавим больше файлов в папку:
$ touch 1.текст$ mkdir новый
$ cd новый
$ touch m.txt n.txt o.текст
$ git add .
$ git status
О мастере филиала
Изменения, которые необходимо зафиксировать:
(используйте "git reset HEAD
новый файл: m.текст
новый файл: n.текст
новый файл: o.текст
Не отслеживаемые файлы:
(используйте "git add
… / 1.текст
Обратите внимание, что Git не добавил 1.txt в папке более высокого уровня.
Если мы создали папку с именем вложенную с d.txt и используйте git add. команду снова, мы видим, что o.txt был добавлен, но 1.txt еще не добавлен.
$ mkdir вложенный$ touch nested / d.текст
$ git add .
$ git status
О мастере филиала
Изменения, которые необходимо зафиксировать:
(используйте "git reset HEAD
новый файл: m.текст
новый файл: n.текст
новый файл: вложенный / d.текст
новый файл: o.текст
Не отслеживаемые файлы:
(используйте "git add
… / 1.текст
Теперь воспользуемся командой git add -A:
$ git add -A$ git status
О мастере филиала
Изменения, которые необходимо зафиксировать:
(используйте "git reset HEAD
новый файл:… / 1.текст
новый файл: m.текст
новый файл: n.текст
новый файл: вложенный / d.текст
новый файл: o.текст
Сейчас, 1.txt в папке был добавлен в область подготовки.
Вот как выглядят папки
| --1.текст
| --Читать.текст
| --a.текст
| --b.текст
| --c.текст
| --x.текст
| --y.текст
| --z.текст
'-- новый
| --m.текст
| --n.текст
| --o.текст
'- вложенные
| --d.текст
Итак, когда вы используете «git add .», Она добавит все изменения с этого уровня. Но когда вы используете параметр «git add -A», он будет искать изменения во всем модуле и добавлять их.
Заключение
Команда Git add предоставляет мощные способы добавления измененных файлов. Вы можете использовать естественную иерархию каталогов ваших кодов, чтобы контролировать, что будет добавлено.
Дальнейшее изучение:
- https: // git-scm.com / docs / git-add
- Git: изучение управления версиями с помощью Git: пошаговое руководство для начинающих
- Контроль версий с Git: мощные инструменты и методы для совместной разработки программного обеспечения
- Pro Git, 2-е издание