Нека да инициализираме нов проект.
$mkdirпроект
$CDпроект
$git init
Инициализирано празно хранилище на Gitв /Потребители/zakh_eecs/_работа/LearnGIT/git_add/проект/.отивам/
$изхвърлен 'Нов проект' >ReadMe.txt
$git добавиReadMe.txt
$git commit -м „Първоначален ангажимент“
[майстор(root-коммит)47b9af1]Първоначален ангажимент
1 файлпроменен,1вмъкване(+)
режим на създаване100644ReadMe.txt
В този проект добавихме ReadMe.txt файл. Използвахме командата git add, за да добавим ReadMe.txt. Командата add не е само за добавяне на файлове. Той също така добавя всяка промяна на файла. За този урок ще добавяме и изтриваме файлове само за да е просто. Но помислете за командата add като добавяне на промени в зоната за постановка. След това трябва да използвате командата commit, за да направите промените официални.
Когато имате работа с много файлове и папки, е трудно индивидуално да добавите всяка промяна. Така че можете да използвате следните команди:
$git добави.
$git добави -ДА СЕ
Нека да разгледаме как се държат двете команди:
$ докоснете a.txt b.txt c.txt
$ git добавяне.
състояние на $ git
На капитана на клона
Промени, които трябва да бъдат извършени:
(използвайте „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
Непроследени файлове:
(използвайте'добави ...'да включвавкакво ще бъде ангажирано)
../1.текст
Забележете, че Git не е добавил файла 1.txt в папката от по -високо ниво.
Ако създадохме папка, наречена nested with d.txt файл и използваме git add. команда отново, виждаме, че o.txt е добавен, но 1.txt все още не е добавен.
$mkdirвложен$докосваневложен/d.txt
$git добави.
$git статус
На капитана на клона
Промени, които трябва да бъдат извършени:
(използвайте'git reset HEAD ...'до нестабилност)
нов файл: m.txt
нов файл: n.txt
нов файл: вложен/d.txt
нов файл: o.txt
Непроследени файлове:
(използвайте'добави ...'да включвавкакво ще бъде ангажирано)
../1.текст
Сега нека използваме командата git add -A:
$git добави -ДА СЕ$git статус
На капитана на клона
Промени, които трябва да бъдат извършени:
(използвайте'git reset HEAD ...'до нестабилност)
нов файл: ../1.текст
нов файл: m.txt
нов файл: n.txt
нов файл: вложен/d.txt
нов файл: o.txt
Сега, 1.txt в папката е добавен към зоната за постановка.
Ето как изглеждат папките
| --1.txt
| --ПрочететеMe.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 предоставя мощни начини за добавяне на модифицирани файлове. Можете да използвате естествената йерархия на кодовете си, за да контролирате добавянето.