Иногда git предлагает git rm --cached
удалить файл, иногда git reset HEAD file
. Когда я должен использовать что?
РЕДАКТИРОВАТЬ:
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
ли отменить add
? Как вы думаете, как rm
себя вести?
git init
нет HEAD
сброса.
rm
подразумевает удаление в контексте unix. Это не противоположность добавления в индекс. Функция удаления файлов не должна быть перегружена функциями изменения промежуточного состояния. Если есть детали реализации, которые делают их удобными для объединения, это просто указывает на отсутствие вдумчивого уровня абстракции в git, что сделало бы понятным юзабилити.
git rm
может как этап удаления , а также убрать из буфера в дополнение )