Låt oss initiera ett nytt projekt.
$ mkdir-projekt$ cd-projekt
$ git init
Initierat tomt Git-arkiv i / Användare / zakh_eecs / _work / LearnGIT / git_add / projekt /.git /
$ echo "Nytt projekt"> ReadMe.Text
$ git lägg till ReadMe.Text
$ git commit -m "Initial Commit"
[master (root-commit) 47b9af1] Initialt åtagande
1 fil ändrad, 1 infogning (+)
skapa läge 100644 ReadMe.Text
I detta projekt har vi lagt till en ReadMe.txt-fil. Vi använde kommandot "git add" för att lägga till ReadMe.Text. Kommandot lägg till är inte bara för att lägga till filer. Det lägger också till alla filändringar. För denna handledning lägger vi till och tar bara bort filer för att hålla det enkelt. Men tänk på kommandot add som att lägga till ändringar i iscensättningsområdet. Då måste du använda kommandot commit för att göra ändringarna officiella.
När du har att göra med många filer och mappar är det svårt att lägga till varje ändring individuellt. Så du kan använda följande kommandon:
$ git add .$ git add -A
Låt oss titta på hur de två kommandona beter sig:
$ touch a.txt b.txt c.Text$ git add .
$ git-status
På filialmästaren
Ändringar som ska göras:
(använd "git reset HEAD
ny fil: a.Text
ny fil: b.Text
ny fil: c.Text
$ git commit -m "Lägg till en.txt, b.txt, c.Text"
[master 9ca90fc] Lägg till en.txt, b.txt, c.Text
3 filer har ändrats, 0 infogningar (+), 0 raderingar (-)
skapa läge 100644 a.Text
skapa läge 100644 b.Text
skapa läge 100644 c.txt $ touch x.txt y.txt z.Text
$ git add -A
$ git-status
På filialmästaren
Ändringar som ska göras:
(använd "git reset HEAD
ny fil: x.Text
ny fil: y.Text
ny fil: z.Text
$ git commit -m "Lägg till x.txt, y.txt, z.Text"
[master 8af8c12] Lägg till x.txt, y.txt, z.Text
3 filer har ändrats, 0 infogningar (+), 0 raderingar (-)
skapa läge 100644 x.Text
skapa läge 100644 y.Text
skapa läge 100644 z.Text
Båda alternativen verkar fungera på samma sätt.
För att undersöka ytterligare, låt oss skapa en situation där vi lägger till något på arbetsnivåns rotnivå och sedan lägger till fler filer i en mapp:
$ touch 1.Text$ mkdir ny
$ cd ny
$ touch m.txt n.txt o.Text
$ git add .
$ git-status
På filialmästaren
Ändringar som ska göras:
(använd "git reset HEAD
ny fil: m.Text
ny fil: n.Text
ny fil: o.Text
Ospårade filer:
(använd "git add
... / 1.Text
Observera Git lade inte till 1.txt-filen i mappen på högre nivå.
Om vi skapade en mapp som heter kapslad med d.txt-fil och använd git add. kommandot igen, vi ser att o.txt har lagts till men 1.txt har inte lagts till ännu.
$ mkdir kapslade$ touch kapslad / d.Text
$ git add .
$ git-status
På filialmästaren
Ändringar som ska göras:
(använd "git reset HEAD
ny fil: m.Text
ny fil: n.Text
ny fil: kapslad / d.Text
ny fil: o.Text
Ospårade filer:
(använd "git add
... / 1.Text
Låt oss nu använda kommandot git add -A:
$ git add -A$ git-status
På filialmästaren
Ändringar som ska göras:
(använd "git reset HEAD
ny fil: ... / 1.Text
ny fil: m.Text
ny fil: n.Text
ny fil: kapslad / d.Text
ny fil: o.Text
Nu, 1.txt i mappen har lagts till iscensättningsområdet.
Så här ser mapparna ut
| --1.Text
| --Läs mig.Text
| --a.Text
| --b.Text
| --c.Text
| --x.Text
| --y.Text
| --z.Text
'- nytt
| --m.Text
| --n.Text
| --o.Text
'- kapslad
| --d.Text
Så när du använder “git add .”-Kommandot kommer det att lägga till alla ändringar från den nivån. Men när du använder alternativet "git add -A" kommer det att leta efter modifieringar i hela modulen och lägga till dem.
Slutsats
Kommandot Git add ger kraftfulla sätt att lägga till modifierade filer. Du kan använda dina naturliga kataloghierarkier för att kontrollera vad som läggs till.
Ytterligare studier:
- https: // git-scm.com / docs / git-add
- Git: Lär dig versionskontroll med Git: En steg-för-steg-guide för nybörjare
- Versionskontroll med Git: Kraftfulla verktyg och tekniker för gemensam mjukvaruutveckling
- Pro Git, 2: a upplagan