Допустим, у меня есть файл с именем a.txt. Я добавляю его в область подготовки, а затем изменяю. Как я мог вернуть его таким, каким он был при добавлении?
Ответы:
git checkout a.txtgit restore a.txtGit сообщит вам об этом, если вы введете git status.
До Git 2.23:
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: a
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: a
#
Начиная с Git 2.23:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: a
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: a
--подобным статусом говорит.
git checkout -- a.txt
Другой ответ на этой странице не имеет --и привел к некоторой путанице.
Вот что Git сообщает вам, когда вы набираете git status:
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: a
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: a
#
Удаление подготовленного файла
В следующих двух разделах показано, как работать с изменениями промежуточной области и рабочего каталога. Приятно то, что команда, которую вы используете для определения состояния этих двух областей, также напоминает вам, как отменить изменения в них. Например, предположим, что вы изменили два файла и хотите зафиксировать их как два отдельных изменения, но вы случайно набираете git add * и обрабатываете их оба. Как можно отключить одну из двух? Команда git status напоминает вам:
$ git add *
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: README.md -> README
modified: CONTRIBUTING.md
Прямо под текстом «Изменения, которые необходимо зафиксировать», говорится, что используйте git reset HEAD ... для отключения. Итак, давайте воспользуемся этим советом, чтобы отключить файл CONTRIBUTING.md:
$ git reset HEAD CONTRIBUTING.md
Unstaged changes after reset:
M CONTRIBUTING.md
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: README.md -> README
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: CONTRIBUTING.md
Команда немного странная, но работает. Файл CONTRIBUTING.md изменен, но снова отключен.