Git файл статусов файлов - PullRequest
0 голосов
/ 14 ноября 2018

По данным официального сайта Git: File states

Есть 4 состояния файлов для git. Таким образом, вопрос: в каком состоянии были удалены и перемещены / переименованы файлы? Конечно, если файл остается в файловой системе, то после фиксации он не будет отслежен, но перед фиксацией он удалил статус (для удаления). Я думаю, что удаление - это не изменение файла, а событие.

1 Ответ

0 голосов
/ 14 ноября 2018

Вы можете рассматривать удаление или переименование точно так же, как редактирование на этой диаграмме.Неважно, вносите ли вы изменения в содержимое (редактируете ли файл), вносите ли изменения метаданных (например, задаете исполняемый файл) или удаляете его, оно проходит тот же рабочий процесс.

Еслиу вас есть файл, переданный в 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...