Come alcuni hanno già detto, un possibile modo è usare lo staging interattivo git . Questo è ottimo quando hai file con estensioni diverse
$ git add -i
staged unstaged path
1: unchanged +0/-1 TODO
2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now>
Se si preme 2
quindi enter
si otterrà un elenco di file disponibili da aggiungere:
What now> 2
staged unstaged path
1: unchanged +0/-1 TODO
2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
Update>>
Ora non ti resta che inserire il numero dei file che vuoi aggiungere, quindi se volessimo aggiungere TODO
e index.html
vorremmo digitare1,2
Update>> 1,2
staged unstaged path
* 1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
Update>>
Vedi la *
prima del numero? ciò significa che il file è stato aggiunto.
Ora immagina di avere 7 file e vuoi aggiungerli tutti tranne il 7 °? Certo che potremmo scrivere 1,2,3,4,5,6
ma immagina che invece di 7 abbiamo 16, sarebbe piuttosto ingombrante, la cosa buona che non abbiamo bisogno di digitarli tutti perché possiamo usare intervalli, digitando1-6
Update>> 1-6
staged unstaged path
* 1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
* 3: unchanged +5/-1 lib/simplegit.rb
* 4: unchanged +5/-1 file4.html
* 5: unchanged +5/-1 file5.html
* 6: unchanged +5/-1 file6.html
7: unchanged +5/-1 file7.html
Update>>
Possiamo anche utilizzare più intervalli, quindi se vogliamo da 1 a 3 e da 5 a 7 digitiamo 1-3, 5-7
:
Update>> 1-3, 5-7
staged unstaged path
* 1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
* 3: unchanged +5/-1 lib/simplegit.rb
4: unchanged +5/-1 file4.html
* 5: unchanged +5/-1 file5.html
* 6: unchanged +5/-1 file6.html
* 7: unchanged +5/-1 file7.html
Update>>
Possiamo anche usarlo per rimuovere dallo stage i file, se digitiamo -number
, quindi se volessimo annullare lostage del file numero 1 dovremmo digitare -1
:
Update>> -1
staged unstaged path
1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
* 3: unchanged +5/-1 lib/simplegit.rb
4: unchanged +5/-1 file4.html
* 5: unchanged +5/-1 file5.html
* 6: unchanged +5/-1 file6.html
* 7: unchanged +5/-1 file7.html
Update>>
E come puoi immaginare, possiamo anche rimuovere lo stage da un intervallo di file, quindi se digitiamo -range
tutti i file su quell'intervallo sarebbe unstage. Se volessimo rimuovere tutti i file da 5 a 7, dovremmo digitare -5-7
:
Update>> -5-7
staged unstaged path
1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
* 3: unchanged +5/-1 lib/simplegit.rb
4: unchanged +5/-1 file4.html
5: unchanged +5/-1 file5.html
6: unchanged +5/-1 file6.html
7: unchanged +5/-1 file7.html
Update>>
git commit -a
apre un editor in cui digitare il messaggio di commit. Immettere un messaggio che si desidera visualizzare come registro e uscire dall'editor. Questo completa il commit. Seguilo spingendo le tue modifiche al repository remoto usandogit push <remote name> <branch name>
comegit push remote master