Почему git checkout <<file>> не работает, если тот же файл находится в индексе? - PullRequest
0 голосов
/ 16 января 2019

У меня в папке git 2 файла 1.txt и 2.txt. Я добавил строку в один из файлов (1.txt) и переместил ее в стадию. Когда я пытаюсь проверить тот же файл из локального репозитория, почему он не работает?

Даже после извлечения файл имеет то же содержимое, что и в локальной папке, и не реплицирует более старое содержимое файла из локального хранилища. Почему команда checkout удаляет мою добавленную строку adding new text? Я немного смущен этим поведением. Пожалуйста, обратитесь к рисунку ниже для моей серии команд.

enter image description here

1 Ответ

0 голосов
/ 16 января 2019

Эта страница из Git book объясняет это довольно хорошо.

git checkout копирует файл из индекса в рабочее дерево (отбрасывает неизмененные изменения). Но у вас нет неустановленных изменений, вы просто добавили 1.txt в индекс.

То, что вы хотите - это, вероятно, git reset, за которым следует git checkout.

git reset с путем к файлу в качестве аргумента копирует файл из HEAD в индекс. Эффективно отменяет эффект git add для этого файла.

git checkout, если файл в индексе совпадает с файлом в HEAD, отменяет редактирование, которое вы сделали для этого файла. Предупреждение : вы потеряете изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...