A volte git suggerisce git rm --cached
di mettere in scena un file, a volte git reset HEAD file
. Quando dovrei usare quale?
MODIFICARE:
D:\code\gt2>git init
Initialized empty Git repository in D:/code/gt2/.git/
D:\code\gt2>touch a
D:\code\gt2>git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# a
nothing added to commit but untracked files present (use "git add" to track)
D:\code\gt2>git add a
D:\code\gt2>git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: a
#
D:\code\gt2>git commit -m a
[master (root-commit) c271e05] a
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a
D:\code\gt2>touch b
D:\code\gt2>git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# b
nothing added to commit but untracked files present (use "git add" to track)
D:\code\gt2>git add b
D:\code\gt2>git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: b
#
rm
annullarla add
? Come pensi che rm
dovrebbe comportarsi?
git init
non c'è nessun HEAD
a cui ripristinare.
rm
implica la cancellazione in un contesto unix. Non è l'opposto dell'aggiunta all'indice. Una funzione per rimuovere i file non deve essere sovraccaricata di funzioni per modificare lo stato di gestione temporanea. Se ci sono dettagli di implementazione che rendono questi comodi da combinare, ciò indica semplicemente la mancanza di uno strato premuroso di astrazione in git, il che renderebbe chiara l'usabilità.
git rm
può sia palco una delezione e anche unstage un'addizione )