Вы можете рассматривать удаление или переименование точно так же, как редактирование на этой диаграмме.Неважно, вносите ли вы изменения в содержимое (редактируете ли файл), вносите ли изменения метаданных (например, задаете исполняемый файл) или удаляете его, оно проходит тот же рабочий процесс.
Еслиу вас есть файл, переданный в git (в состоянии «не изменено») на диаграмме, и вы удаляете его, теперь вы находитесь в «измененном» состоянии.git обнаружил это изменение:
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: foo.txt
no changes added to commit (use "git add" and/or "git commit -a")
В этот момент файл удаляется на диске, но не помещается в папку для удаления.Это в желтом «модифицированном» состоянии.Чтобы поставить его, вы можете поставить его так же, как любое другое изменение, запустив git add foo.txt
.
Напомним, несмотря на название, git add
не добавляет файл, это вносит изменения в файл .В этом случае изменение является удалением, поэтому git add
будет выполнять удаление.
(я упоминаю об этом только для того, чтобы доказать точку, на самом деле, гораздо более естественным является запуск git rm
для созданияудаление файла. Любой из них будет работать.)
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: foo.txt
На данный момент файл находится в красном «промежуточном» состоянии.Когда вы фиксируете это изменение, файл больше не будет существовать в репозитории.
[master 3b58d71] deleted
1 file changed, 7 deletions(-)
delete mode 100644 foo.txt
Воссоздание файла начнется заново в сером «неотслеживаемом» состоянии.
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
foo.txt
nothing added to commit but untracked files present (use "git add" to track)