Нека да инициализираме нов проект.
$ mkdir проект$ cd проект
$ git init
Инициализирано празно хранилище на Git в / Users / zakh_eecs / _work / LearnGIT / git_add / project /.git /
$ echo "Нов проект"> ReadMe.текст
$ git добави ReadMe.текст
$ git commit -m "Първоначален ангажимент"
[master (root-commit) 47b9af1] Първоначално фиксиране
1 файл е променен, 1 вмъкване (+)
режим на създаване 100644 ReadMe.текст
В този проект сме добавили ReadMe.txt файл. Използвахме командата “git add”, за да добавим ReadMe.текст. Командата add не е само за добавяне на файлове. Той също така добавя всяка модификация на файл. За този урок ще добавяме и изтриваме файлове само, за да улесним. Но помислете за командата add като за добавяне на промени в подреждането. След това трябва да използвате командата commit, за да направите официалните промени.
Когато имате работа с много файлове и папки, е трудно да добавите поотделно всяка промяна. Така че можете да използвате следните команди:
$ git add .$ git add -A
Нека да разгледаме как се държат двете команди:
$ докосване a.txt b.txt c.текст$ git add .
$ git статус
На клона майстор
Промени, които трябва да бъдат извършени:
(използвайте "git reset HEAD
нов файл: a.текст
нов файл: b.текст
нов файл: c.текст
$ git commit -m "Добавяне на.txt, b.txt, c.текст"
[master 9ca90fc] Добавяне на a.txt, b.txt, c.текст
3 файла са променени, 0 вмъквания (+), 0 изтривания (-)
режим на създаване 100644 a.текст
режим на създаване 100644 b.текст
режим на създаване 100644 c.txt $ докосване x.txt y.txt z.текст
$ git add -A
$ git статус
На клона майстор
Промени, които трябва да бъдат извършени:
(използвайте "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 y.текст
режим на създаване 100644 z.текст
И двата варианта изглеждат еднакви.
За да проучим допълнително, нека създадем ситуация, при която добавяме нещо на основното ниво на работната директория и след това добавяме още файлове в папка:
$ докосване 1.текст$ mkdir нов
$ cd ново
$ докосване m.txt n.txt o.текст
$ git add .
$ git статус
На клона майстор
Промени, които трябва да бъдат извършени:
(използвайте "git reset HEAD
нов файл: m.текст
нов файл: n.текст
нов файл: o.текст
Непроследени файлове:
(използвайте "git add
... / 1.текст
Забележете, че Git не е добавил 1.txt файл в папката от по-високо ниво.
Ако създадохме папка, наречена вложена с d.txt файл и използвайте git add. команда отново, виждаме, че o.txt е добавен, но 1.txt все още не е добавен.
$ mkdir вложен$ touch вложен / d.текст
$ git add .
$ git статус
На клона майстор
Промени, които трябва да бъдат извършени:
(използвайте "git reset HEAD
нов файл: m.текст
нов файл: n.текст
нов файл: вложен / d.текст
нов файл: o.текст
Непроследени файлове:
(използвайте "git add
... / 1.текст
Сега нека използваме командата git add -A:
$ git add -A$ git статус
На клона майстор
Промени, които трябва да бъдат извършени:
(използвайте "git reset HEAD
нов файл: ... / 1.текст
нов файл: m.текст
нов файл: n.текст
нов файл: вложен / d.текст
нов файл: o.текст
Сега, 1.txt в папката е добавен към подреждането.
Ето как изглеждат папките
| --1.текст
| --ReadMe.текст
| --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-ро издание