Czasami git sugeruje, git rm --cached
aby oderwać plik, czasem git reset HEAD file
. Kiedy powinienem użyć które?
EDYTOWAĆ:
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
jest cofanie add
? Jak myślisz, jak rm
powinien się zachowywać?
git init
nie ma HEAD
możliwości zresetowania.
rm
oznacza usunięcie w kontekście uniksowym. Nie jest odwrotnością dodawania do indeksu. Funkcja usuwania plików nie powinna być przeciążona funkcjami zmieniającymi stan przemieszczania. Jeśli istnieją szczegóły implementacji, które ułatwiają łączenie, oznacza to po prostu brak przemyślanej warstwy abstrakcji w git, co uczyniłoby użyteczność jasną.
git rm
można zarówno etap usunięcie , a także unstage się dodatek )