La oss initialisere et nytt prosjekt.
$ mkdir-prosjekt$ cd-prosjekt
$ git init
Initialisert tomt Git-arkiv i / Brukere / zakh_eecs / _work / LearnGIT / git_add / prosjekt /.git /
$ echo "Nytt prosjekt"> ReadMe.tekst
$ git legg til ReadMe.tekst
$ git commit -m "Initial Commit"
[master (root-commit) 47b9af1] Innledende forpliktelse
1 fil endret, 1 innsetting (+)
opprett modus 100644 ReadMe.tekst
I dette prosjektet har vi lagt til en ReadMe.txt-fil. Vi brukte kommandoen "git add" for å legge til ReadMe.tekst. Add-kommandoen er ikke bare for å legge til filer. Det legger også til enhver filendring. For denne opplæringen vil vi bare legge til og slette filer for å holde det enkelt. Men tenk på add-kommandoen som å legge til endringer i iscenesettingsområdet. Deretter må du bruke kommandoen commit for å gjøre endringene offisielle.
Når du har å gjøre med mange filer og mapper, er det vanskelig å legge til hver endring hver for seg. Så du kan bruke følgende kommandoer:
$ git add .$ git add -A
La oss se på hvordan de to kommandoene oppfører seg:
$ berør a.tekst b.tekst c.tekst$ git add .
$ git-status
På grenmester
Endringer som skal begås:
(bruk "git reset HEAD
ny fil: a.tekst
ny fil: b.tekst
ny fil: c.tekst
$ git commit -m "Legg til en.txt, b.txt, c.tekst"
[master 9ca90fc] Legg til en.txt, b.txt, c.tekst
3 filer endret, 0 innsettinger (+), 0 slettinger (-)
opprett modus 100644 a.tekst
opprett modus 100644 b.tekst
opprett modus 100644 c.txt $ touch x.tekst y.tekst z.tekst
$ git add -A
$ git-status
På grenmester
Endringer som skal begås:
(bruk "git reset HEAD
ny fil: x.tekst
ny fil: y.tekst
ny fil: z.tekst
$ git commit -m "Legg til x.txt, y.txt, z.tekst"
[master 8af8c12] Legg til x.txt, y.txt, z.tekst
3 filer endret, 0 innsettinger (+), 0 slettinger (-)
opprett modus 100644 x.tekst
opprett modus 100644 y.tekst
opprett modus 100644 z.tekst
Begge alternativene ser ut til å fungere likt.
For å undersøke nærmere, la oss lage en situasjon der vi legger til noe på rotnivået i arbeidskatalogen og deretter legger til flere filer i en mappe:
$ touch 1.tekst$ mkdir ny
$ cd ny
$ touch m.txt n.tekst o.tekst
$ git add .
$ git-status
På grenmester
Endringer som skal begås:
(bruk "git reset HEAD
ny fil: m.tekst
ny fil: n.tekst
ny fil: o.tekst
Usporede filer:
(bruk "git add
… /1.tekst
Legg merke til at Git ikke la til 1.txt-fil i mappen på høyere nivå.
Hvis vi opprettet en mappe kalt nestet med d.txt-fil og bruk git add. kommandoen igjen, vi ser at o.txt er lagt til, men 1.txt er ikke lagt til ennå.
$ mkdir nestet$ touch nestet / d.tekst
$ git add .
$ git-status
På grenmester
Endringer som skal begås:
(bruk "git reset HEAD
ny fil: m.tekst
ny fil: n.tekst
ny fil: nestet / d.tekst
ny fil: o.tekst
Usporede filer:
(bruk "git add
… /1.tekst
La oss nå bruke git add -A-kommandoen:
$ git add -A$ git-status
På grenmester
Endringer som skal begås:
(bruk "git reset HEAD
ny fil: ... / 1.tekst
ny fil: m.tekst
ny fil: n.tekst
ny fil: nestet / d.tekst
ny fil: o.tekst
Nå, 1.txt i mappen er lagt til iscenesettingsområdet.
Slik ser mappene ut
| --1.tekst
| --ReadMe.tekst
| --a.tekst
| --b.tekst
| --c.tekst
| --x.tekst
| --y.tekst
| --z.tekst
'- nytt
| --m.tekst
| --n.tekst
| --o.tekst
'- nestet
| --d.tekst
Så når du bruker “git add .”Kommando, vil den legge til alle endringene fra det nivået. Men når du bruker "git add-A" alternativet, vil det se etter modifikasjoner i hele modulen og legge dem til.
Konklusjon
Kommandoen Git add gir kraftige måter å legge til endrede filer på. Du kan bruke kodenes naturlige kataloghierarki til å kontrollere hva som blir lagt til.
Videre studier:
- https: // git-scm.com / docs / git-add
- Git: Lær versjonskontroll med Git: En trinnvis Ultimate Beginners Guide
- Versjonskontroll med Git: Kraftige verktøy og teknikker for samarbeidsprogramvareutvikling
- Pro Git, 2. utgave