In git, esiste un modo (semplice) per modificare l'indice in modo che vengano aggiunte solo le modifiche ai file già presenti in esso? Sembra un po 'complicato, ma quello che voglio ottenere è semplice.Aggiornamento dei file di stasi
consente di dire il mio indice si presenta così (un po 'messo a nudo git status
uscita):
# Changes to be committed:
# modified: A
# modified: B
#
# Changed but not updated:
# modified: B
# modified: C
#
# Untracked files:
# D
Alcune modifiche al B
sono nell'indice, alcuni non sono. C
non è stato messo in scena.
Come è possibile aggiornare B
nell'indice (mettere in scena le modifiche non modificate) senza aggiungere C
?
I.e. Vorrei per l'indice a guardare come questo:
# Changes to be committed:
# modified: A
# modified: B
#
# Changed but not updated:
# modified: C
#
# Untracked files:
# D
In questo semplice caso si può naturalmente essere raggiunto con una semplice git add B
, ma mi piacerebbe sapere se c'è una risposta semplice per il caso generale. Ho provato git add --refresh
, ma se ho capito bene, questo aggiorna solo le informazioni sulle statistiche.
si può mostrare un caso d'uso reale dove vorresti farlo? Non riesco a immaginarne nessuna (quando aggiungo un file e lo modifico di più, non significa automaticamente che vorrò aggiungere anche queste modifiche, specialmente quando non voglio aggiungere modifiche in altri file). –
@JanHudec Probabilmente non avrei bisogno di questo se fossi più severo e toccassi solo quei file che dovrebbero andare nel commit ('B'). Comunque a volte vengo trascinato e inizio a fare cambiamenti che dovrebbero essere in un nuovo commit ('C'), quindi aggiungo' B' all'indice. Prima di impegnarmi rivedo sempre diff --cached e qualche volta pulisco qualcosa in 'B'. e questo è quando ho bisogno di questo. Immagino che potrebbe probabilmente essere risolto in un altro modo, ad esempio con lo stash – axelarge
Il mio punto è, che quando stai facendo qualcosa nel file 'X' che dovrebbe andare in commit' B' e lasciarsi trasportare e fare cambiamenti che dovrebbero andare in commit 'C', alcune di queste modifiche sono spesso di nuovo' X'. In tal caso, si desidera aggiungere manualmente i singoli hunk e non solo aggiungere nuovamente il file 'X'. Ovviamente se vieni portato via, probabilmente hai notato qualcosa intorno al punto che stavi cambiando, ed è per questo che è improbabile che le modifiche extra non tocchino i file che fa il pugno. –