Скажімо, у мене є файл із іменем 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 змінено, але знову знято з інсталяції.