[GIT] Mettere in STAGE un file

Rispondi
Roberto
Amministratore
Messaggi: 160
Iscritto il: 19/12/2009, 19:30

[GIT] Mettere in STAGE un file

Messaggio da Roberto »

Mettere in STAGE un file e' il passo preliminare che viene fatto per aggiornare (COMMIT) il progetto a cui stiamo lavorando con le nostre modifiche. Pertanto possiamo individuare due tipi di operazioni, mettere in stage file nuovi che si trovano in stato Untracked oppure mettere in stage file in stato Tracked che sono stati modificati.

Per effettuare questa operazione si utilizza il comando ADD con la seguente sintassi:

Codice: Seleziona tutto

$ git add <files>
dove <files> puo' essere un singolo file comprensivo di path, oppure una directory; in quest'ultimo caso saranno messi in stage tutti i file all'interno della directory.

FILE UNTRACKED

Per far diventare Tracked un file che abbiamo creato e metterlo in stage possiamo quindi eseguire il comando:

Codice: Seleziona tutto

$ git add README
se adesso eseguiamo nuovamente il comando status possiamo vedere che il file e' diventato Tracked, e' stato messo in stage ed e' pronto per essere committato:

Codice: Seleziona tutto

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
     (use "git restore --staged <file>..." to unstage)

          new file: README
FILE TRACKED

Adesso che abbiamo messo in stage un file nuovo, supponiamo di modificare un file esistente e gia' in stato Tracked, avremo a questo punto la seguente situazione:

Codice: Seleziona tutto

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
     (use "git reset HEAD <file>..." to unstage)

          new file: README

Changes not staged for commit:
     (use "git add <file>..." to update what will be committed)
     (use "git checkout -- <file>..." to discard changes in working directory)

          modified: CONTRIBUTING.md
Per inserire in stage il file che abbiamo modificato si utilizza lo stesso comando:

Codice: Seleziona tutto

$ git add CONTRIBUTING.md
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
     (use "git reset HEAD <file>..." to unstage)

          new file: README
          modified: CONTRIBUTING.md
Supponiamo che adesso vogliamo modificare ancora il nostro file prima di committarlo, se eseguiamo nuovamente il comando status avremo la seguente situazione:

Codice: Seleziona tutto

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
     (use "git reset HEAD <file>..." to unstage)

          new file: README
          modified: CONTRIBUTING.md

Changes not staged for commit:
     (use "git add <file>..." to update what will be committed)
     (use "git checkout -- <file>..." to discard changes in working directory)

          modified: CONTRIBUTING.md
Il file che abbiamo modificato si trova sia tra i file in Stage che in quelli Non-Stage, quindi se noi committassimo in questo momento non verrebbero inviate le ultime modifiche che abbiamo fatto, ma solo quelle precedenti. Pertanto se si modifica un file dopo aver eseguito il comando "Add" dobbiamo eseguirlo una seconda volta per mettere in stage tutto il file modificato.

Codice: Seleziona tutto

$ git add CONTRIBUTING.md
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
     (use "git reset HEAD <file>..." to unstage)

          new file: README
          modified: CONTRIBUTING.md
Rispondi