Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.46.1 → 2.47.0 no changes
- 2.46.0 no changes
- 2.45.1 → 2.45.2 no changes
- 2.45.0 04/29/24
- 2.43.2 → 2.44.2 no changes
- 2.43.1 02/09/24
- 2.40.1 → 2.43.0 no changes
- 2.40.0 03/12/23
- 2.38.1 → 2.39.5 no changes
- 2.38.0 10/02/22
- 2.37.4 → 2.37.7 no changes
- 2.37.3 08/30/22
- 2.34.1 → 2.37.2 no changes
- 2.34.0 11/15/21
- 2.25.1 → 2.33.8 no changes
- 2.25.0 01/13/20
- 2.22.1 → 2.24.4 no changes
- 2.22.0 no changes
- 2.21.1 → 2.21.4 no changes
- 2.21.0 02/24/19
- 2.18.1 → 2.20.5 no changes
- 2.18.0 06/21/18
- 2.17.0 → 2.17.6 no changes
- 2.16.6 12/06/19
- 2.15.4 no changes
- 2.14.6 12/06/19
- 2.11.4 → 2.13.7 no changes
- 2.10.5 09/22/17
- 2.8.6 → 2.9.5 no changes
- 2.7.6 07/30/17
- 2.5.6 → 2.6.7 no changes
- 2.4.12 05/05/17
- 2.3.10 09/28/15
- 2.1.4 → 2.2.3 no changes
- 2.0.5 12/17/14
REZUMAT
git add [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p] [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]] [--sparse] [--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing] [--renormalize] [--chmod=(+|-)x] [--pathspec-from-file=<file> [--pathspec-file-nul]] [--] [<pathspec>…]
DESCRIERE
Această comandă actualizează indexul folosind conținutul curent găsit în arborele de lucru, pentru a pregăti conținutul pregătit pentru următoarea confirmare. De obicei, adaugă conținutul actual al căilor de acces existente ca întreg, dar, cu ajutorul unor opțiuni, poate fi utilizată și pentru a adăuga conținut cu aplicarea doar a unei părți din modificările aduse fișierelor din arborele de lucru sau pentru a elimina căile de acces care nu mai există în arborele de lucru.
"Index" conține un instantaneu al conținutului configurației de lucru, iar acest instantaneu este luat ca fiind conținutul următoarei comenzi. Prin urmare, după ce ați efectuat orice modificare în configurația de lucru și înainte de a rula comanda commit, trebuie să utilizați comanda add
pentru a adăuga orice fișier nou sau modificat la index.
Această comandă poate fi executată de mai multe ori înainte de o confirmare. Aceasta adaugă doar conținutul fișierului (fișierelor) specificat(e) în momentul în care comanda add este executată; dacă doriți ca modificările ulterioare să fie incluse în următoarea confirmare, trebuie să executați din nou git add
pentru a adăuga noul conținut la index.
Comanda git status
poate fi utilizată pentru a obține un rezumat al fișierelor care au modificări care sunt pregătite pentru următoarea confirmare.
Comanda git add
nu va adăuga în mod implicit fișiere ignorate. Dacă în linia de comandă au fost specificate în mod explicit fișiere ignorate, git add
va eșua cu o listă de fișiere ignorate. Fișierele ignorate la care se ajunge prin recursivitatea directoarelor sau prin globarea numelor de fișiere efectuată de Git (citați glob-urile înainte de shell) vor fi ignorate în mod silențios. Comanda "git add" poate fi utilizată pentru a adăuga fișiere ignorate cu opțiunea -f
(force).
Vă rugăm să consultați git-commit[1] pentru modalități alternative de a adăuga conținut la un commit.
OPȚIUNI
- <pathspec>…
-
Fișiere din care se adaugă conținut. Se pot introduce blocuri de fișiere (de exemplu,
*.c
) pentru a adăuga toate fișierele corespunzătoare. De asemenea, se poate introduce un nume de director (de exemplu,dir
pentru a adăugadir/file1
șidir/file2
) pentru a actualiza indexul pentru a se potrivi cu starea curentă a directorului ca întreg (de exemplu, dacă se specificădir
se va înregistra nu numai un fișierdir/file1
modificat în configurația de lucru, un fișierdir/file2
adăugat în configurația de lucru, ci și un fișierdir/file3
eliminat din acesta). Rețineți că versiunile mai vechi ale Git obișnuiau să ignore fișierele eliminate; utilizați opțiunea--no-all
dacă doriți să adăugați fișiere modificate sau noi, dar să le ignorați pe cele eliminate.Pentru mai multe detalii despre sintaxa <pathspec>, consultați intrarea "pathspec" din gitglossary[7].
- -n
- --dry-run
-
Nu adăugați de fapt fișierul (fișierele), doar arătați dacă acestea există și/sau vor fi ignorate.
- -v
- --verbose
-
Poți să fii vorbăreț.
- -f
- --force
-
Permite adăugarea de fișiere altfel ignorate.
- --sparse
-
Permite actualizarea intrărilor din index în afara conului de verificare a sparse-checkout. În mod normal,
git add
refuză să actualizeze intrările de index ale căror căi de acces nu se încadrează în conul sparse-checkout, deoarece aceste fișiere ar putea fi eliminate din arborele de lucru fără avertisment. Vezi git-sparse-checkout[1] pentru mai multe detalii. - -i
- --interactive
-
Adăugați în mod interactiv la index conținutul modificat în configurația de lucru. Se pot furniza argumente opționale privind calea de acces pentru a limita operațiunea la un subset al structurii de lucru. A se vedea "Mod interactiv" pentru detalii.
- -p
- --patch
-
Alegeți în mod interactiv bucăți de patch-uri între index și arborele de lucru și adăugați-le la index. Astfel, utilizatorul are posibilitatea de a examina diferența înainte de a adăuga conținutul modificat la index.
Acest lucru rulează efectiv
add --interactive
, dar ocolește meniul inițial de comenzi și trece direct la subcomandapatch
. Pentru detalii, consultați “Modul interactiv”. - -e
- --edit
-
Deschideți fișierul diferență față de index într-un editor și lăsați utilizatorul să îl editeze. După ce editorul a fost închis, ajustați anteturile hunk și aplicați patch-ul la index.
Scopul acestei opțiuni este de a selecta și de a alege liniile din patch-ul care urmează să fie aplicat sau chiar de a modifica conținutul liniilor care urmează să fie etapizate. Această opțiune poate fi mai rapidă și mai flexibilă decât utilizarea selectorului interactiv de hunk-uri. Cu toate acestea, este ușor să te confunzi și să creezi un patch care nu se aplică la index. Consultați EDITING PATCHES (Editarea patch-urilor) de mai jos.
- -u
- --update
-
Actualizează indexul doar acolo unde există deja o intrare care corespunde cu <pathspec>. Acest lucru elimină și modifică intrările din index pentru a se potrivi cu arborele de lucru, dar nu adaugă fișiere noi.
Dacă nu se dă nici o <pathspec> atunci când se utilizează opțiunea
-u
, sunt actualizate toate fișierele urmărite din întregul configurație de lucru (vechile versiuni ale Git obișnuiau să limiteze actualizarea la directorul curent și la subdirectoarele sale). - -A
- --all
- --no-ignore-removal
-
Actualizează indexul nu numai în cazul în care în arborele de lucru există un fișier care se potrivește cu <pathspec>, ci și în cazul în care indexul are deja o intrare. Această operațiune adaugă, modifică și elimină intrări din index pentru a se potrivi cu structura de lucru.
Dacă nu se indică nicio <pathspec> atunci când se utilizează opțiunea
-A
, sunt actualizate toate fișierele din întregul configurator de lucru (vechile versiuni ale Git obișnuiau să limiteze actualizarea la directorul curent și la subdirectoarele sale). - --no-all
- --ignore-removal
-
Actualizarea indexului prin adăugarea de fișiere noi necunoscute indexului și a fișierelor modificate în configurația de lucru, dar ignoră fișierele care au fost eliminate din configurația de lucru. Această opțiune nu este opțională atunci când nu se utilizează <pathspec>.
Această opțiune este în primul rând pentru a ajuta utilizatorii care sunt obișnuiți cu versiunile mai vechi de Git, în care "git add <pathspec>…" era un sinonim pentru "git add --no-all <pathspec>…", adică ignora fișierele eliminate.
- -N
- --intent-to-add
-
Înregistrați doar faptul că traseul va fi adăugat ulterior. O intrare pentru calea de acces este plasată în index fără conținut. Acest lucru este util, printre altele, pentru a arăta conținutul neetajat al unor astfel de fișiere cu
git diff
și pentru a le confirma cugit commit -a
. - --refresh
-
Nu adăugați fișierul (sau fișierele), ci doar reîmprospătați informațiile stat() ale acestora în index.
- --ignore-errors
-
În cazul în care unele fișiere nu au putut fi adăugate din cauza unor erori de indexare, nu întrerupeți operațiunea, ci continuați să le adăugați pe celelalte. Comanda va ieși în continuare cu un status diferit de zero. Variabila de configurare
add.ignoreErrors
poate fi setată la true pentru ca acesta să fie comportamentul implicit. - --ignore-missing
-
Această opțiune poate fi utilizată numai împreună cu --dry-run. Utilizând această opțiune, utilizatorul poate verifica dacă vreunul dintre fișierele date va fi ignorat, indiferent dacă acestea sunt deja prezente sau nu în configurația de lucru.
- --no-warn-embedded-repo
-
În mod implicit,
git add
va avertiza atunci când se adaugă un depozit încorporat în index fără a folosigit submodule add
pentru a crea o intrare în.gitmodules
. Această opțiune va suprima avertismentul (de exemplu, dacă efectuați manual operațiuni asupra submodulelor). - --renormalize
-
Apply the "clean" process freshly to all tracked files to forcibly add them again to the index. This is useful after changing
core.autocrlf
configuration or thetext
attribute in order to correct files added with wrong CRLF/LF line endings. This option implies-u
. Lone CR characters are untouched, thus while a CRLF cleans to LF, a CRCRLF sequence is only partially cleaned to CRLF. - --chmod=(+|-)x
-
Suprascrieți bitul executabil al fișierelor adăugate. Bitul executabil este modificat doar în index, fișierele de pe disc rămân neschimbate.
- --pathspec-from-file=<fișier>
-
Pathspec este transmis în
<file>
în loc de argetele din linia de comandă. Dacă<file>
este exact-
, se utilizează intrarea standard. Elementele Pathspec sunt separate prin LF sau CR/LF. Elementele Pathspec pot fi citate așa cum se explică pentru variabila de configurarecore.quotePath
(a se vedea git-config[1]). A se vedea și--pathspec-file-nul
și--literal-pathspecs
global. - --pathspec-file-nul
-
Are sens numai cu
--pathspec-from-file
. Elementele Pathspec sunt separate prin caracterul NUL, iar toate celelalte caractere sunt luate în considerare în mod literal (inclusiv liniile de început și ghilimelele). - --
-
Această opțiune poate fi utilizată pentru a separa opțiunile liniei de comandă de lista de fișiere (util atunci când numele fișierelor pot fi confundate cu opțiunile liniei de comandă).
EXEMPLE
-
Adaugă conținutul din toate fișierele
*.txt
din directorulDocumentation
și din subdirectoarele sale:$ git add Documentation/\*.txt
Observați că asteriscul
*
este citat din shell în acest exemplu; acest lucru permite comenzii să includă fișierele din subdirectoarele din directorulDocumentation/
. -
Are în vedere adăugarea conținutului din toate scripturile git-*.sh:
$ git add git-*.sh
Deoarece acest exemplu permite shell-ului să extindă asteriscul (adică listați fișierele în mod explicit), nu ia în considerare
subdir/git-foo.sh
.
MODUL INTERACTIV
Atunci când comanda intră în modul interactiv, aceasta afișează rezultatul subcomandei "status" și apoi intră în bucla de comandă interactivă.
Bucla de comenzi afișează lista de subcomandă disponibile și oferă o solicitare "What now> ". În general, atunci când promptul se termină cu un singur ">", puteți alege doar una dintre opțiunile oferite și tasta return, astfel:
*** Comenzi *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help Ce se întâmplă acum> 1 patch 6: diff 7: quit 8: help What now> 1
De asemenea, puteți spune s
sau sta
sau status
mai sus, atâta timp cât alegerea este unică.
Bucla comenzii principale are 6 subcomandă (plus help și quit).
- status
-
Aceasta arată modificarea între HEAD și index (adică ceea ce va fi trimis dacă spui
git commit
) și între index și fișierele din configurația de lucru (adică ceea ce ai putea modifica înainte degit commit
folosindgit add
) pentru fiecare cale. Un exemplu de ieșire arată astfel:staged unstaged path 1: binary nothing foo.png 2: +403/-35 +1/-1 add-interactive.c
It shows that foo.png has differences from HEAD (but that is binary so line count cannot be shown) and there is no difference between indexed copy and the working tree version (if the working tree version were also different, binary would have been shown in place of nothing). The other file, add-interactive.c, has 403 lines added and 35 lines deleted if you commit what is in the index, but working tree file has further modifications (one addition and one deletion).
- update
-
Aceasta afișează informațiile de stare și emite o solicitare "Update>>". Atunci când promptul se termină cu dublu ">>", puteți face mai multe selecții, concatenate cu spații albe sau virgule. De asemenea, puteți spune intervale. De exemplu, "2-5 7,9" pentru a alege 2,3,4,5,7,9 din listă. Dacă al doilea număr dintr-un interval este omis, sunt luate toate patch-urile rămase. De exemplu, "7-" pentru a alege 7,8,9 din listă. Puteți spune "*" pentru a alege totul.
Cele pe care le-ați ales sunt apoi evidențiate cu "*", astfel:
staged unstaged path 1: binary nothing foo.png * 2: +403/-35 +1/-1 add-interactive.c
Pentru a elimina selecția, prefixați intrarea cu
-
, astfel:Update>> -2
După efectuarea selecției, răspundeți cu o linie goală pentru a pune în scenă conținutul fișierelor din configurația de lucru pentru căile selectate în index.
- reveniți la
-
Aceasta are o interfață de utilizare foarte asemănătoare cu "update", iar informațiile etapizate pentru căile selectate sunt readuse la cele din versiunea HEAD. Anularea căilor de acces noi le face să nu mai fie urmărite.
- adăugați untracked
-
Aceasta are o interfață de utilizare foarte asemănătoare cu update și revert și vă permite să adăugați la index căi de acces netrasate.
- patch
-
Acest lucru vă permite să alegeți o cale dintr-o selecție de tip "status". După alegerea căii, vă prezintă diferența dintre fișierul index și fișierul de lucru și vă întreabă dacă doriți să etapizați modificarea fiecărei bucăți. Puteți selecta una dintre următoarele opțiuni și tasta return:
y - pune în scenă această bucată n - nu puneți în scenă această bucată q - renunță; nu pune în scenă această bucată sau oricare dintre cele rămase a - pune în scenă această bucată și toate bucățile ulterioare din fișier d - nu pune în scenă această bucată și nici una dintre bucățile ulterioare din fișier g - selectează o bucată la care să treacă / - caută o bucată care se potrivește cu regex-ul dat j - lasă această bucată nehotărâtă, vezi următoarea bucată nehotărâtă J - lasă acest hunk nehotărât, vezi următorul hunk k - lasă această bucată nehotărâtă, vezi bucată nehotărâtă anterioară K - lasă această bucată nehotărâtă, vezi bucată anterioară s - împarte bucata curentă în bucăți mai mici e - editează manual hunk-ul curent ? - tipărește ajutorul
După ce se hotărăște ce se întâmplă cu toate părțile, în cazul în care există o parte care a fost aleasă, indexul este actualizat cu părțile selectate.
Puteți omite să tastați return aici, prin setarea variabilei de configurare
interactive.singleKey
latrue
. - diff
-
Acest lucru vă permite să verificați ce va fi confirmat (adică între HEAD și index).
EDITAREA PATCH-URILOR
Invocând git add -e
sau selectând e
din selectorul interactiv hunk va deschide un patch în editorul dumneavoastră; după ce editorul iese, rezultatul este aplicat la index. Sunteți liber să faceți modificări arbitrare la patch, dar rețineți că unele modificări pot avea rezultate confuze sau chiar pot duce la un patch care nu poate fi aplicat. Dacă doriți să abandonați complet operațiunea (adică să nu mai puneți nimic nou în index), ștergeți pur și simplu toate liniile din patch. Lista de mai jos descrie unele lucruri comune pe care le puteți vedea într-un patch și ce operații de editare au sens asupra lor.
- conținut adăugat
-
Conținutul adăugat este reprezentat de liniile care încep cu "+". Puteți împiedica punerea în scenă a liniilor de adăugare prin ștergerea acestora.
- conținut eliminat
-
Conținutul eliminat este reprezentat de liniile care încep cu "-". Puteți preveni eliminarea lor prin transformarea lui "-" într-un " " (spațiu).
- conținut modificat
-
Conținutul modificat este reprezentat prin linii "-" (eliminarea conținutului vechi) urmate de linii "+" (adăugarea conținutului de înlocuire). Puteți preveni etapizarea modificării prin transformarea liniilor "-" în " " și prin eliminarea liniilor "+". Aveți grijă că modificarea doar a jumătate din pereche este posibil să introducă modificări confuze în index.
Există, de asemenea, operații mai complexe care pot fi efectuate. Atenție însă, deoarece patch-ul este aplicat numai la index și nu la configurația de lucru, arborele de lucru va părea că "anulează" modificarea din index. De exemplu, introducerea unei linii noi în index care nu se află nici în HEAD, nici în configurația de lucru va pune în scenă noua linie pentru confirmare, dar linia va părea că a fost anulată în acesta.
Evitați să utilizați aceste construcții sau faceți acest lucru cu mare precauție.
- eliminarea conținutului neatins
-
Conținutul care nu diferă între index și structura de lucru poate fi afișat pe linii de context, începând cu un " " (spațiu). Puteți etapiza liniile de context pentru a fi eliminate prin transformarea spațiului în "-". Fișierul configurat în structura de lucru va apărea pentru a reintroduce conținutul.
- modificarea conținutului existent
-
Se pot modifica, de asemenea, liniile de context, prin pregătirea lor pentru eliminare (prin transformarea " " în "-") și adăugarea unei linii "+" cu noul conținut. În mod similar, se pot modifica liniile "+" pentru adăugirile sau modificările existente. În toate cazurile, noua modificare va apărea inversată în configurația de lucru.
- conținut nou
-
De asemenea, puteți adăuga conținut nou care nu există în patch; pur și simplu adăugați linii noi, fiecare începând cu "+". Adăugarea va apărea inversată în configurația de lucru.
Există, de asemenea, câteva operațiuni care ar trebui evitate în totalitate, deoarece acestea vor face imposibilă aplicarea patch-ului:
-
adăugarea de linii de context (" ") sau de eliminare ("-")
-
ștergerea liniilor de context sau de eliminare
-
modificarea conținutului liniilor de context sau de eliminare
CONFIGURATION
Warning
|
Missing See original version for this content. |
Warning
|
Missing See original version for this content. |
GIT
Parte a suitei git[1]