Предыдущий ролик Следующий ролик  

Видео урок: Отмена изменений в буфере

Git: обучение основам

В последнем ролике мы рассмотрели, как отменять изменения в рабочей директории. В этом ролике мы посмотрим, как отменять изменения в буфере, или, другими словами, как вынимать изменения, которые мы отправили в буфер. Прежде чем мы начнем делать это, нам нужно добавить что-то в буфер. Давайте откроем документ resources.html, и если мы прокрутим вниз, мы увидим список рекомендуемых вещей, которые касаются путешествий. Вот, например, удобная обувь, шляпа и так далее. Я беру очки и солнцезащитный крем, вырезаю их и перемещаю под шляпы, поскольку это очень важные вещи.

Ставлю их наверх. Сохраняю изменения, закрываю. Конечно, эти изменения есть в рабочей директории, они еще не в буфере. Если мы хотим отправить их в буфер, пишем add и затем resources.html. Теперь git status. Мы видим, что это изменение было отправлено в буфер. А теперь мы хотим вывести это изменение из буфера. Мы не хотим терять изменение. Мы хотим, чтобы это изменение все еще было в нашей рабочей директории. В большинстве случаев вы будете использовать это, если захотите объединить все в один коммит.

Допустим, у вас есть пять или шесть различных файлов с изменениями, и вы пытаетесь собрать их в коммит в буфере. И вдруг вы добавили дополнительный файл. То есть нужно вывести этот один файл из буфера, а все остальные оставить там, а затем вы будете готовы сделать коммит. Это реальное приложение, и вот как можно это использовать. Как мы изымем изменения из буфера? В статусе нам дана маленькая подсказка. Git говорит (use "git reset HEAD <file >..." to unstage). Так что, пишем git reset, затем HEAD, затем resources.html.

Мы говорим посмотреть на указатель HEAD. HEAD указывает на последний коммит на верху текущего бранча, который является основным бранчем. Это наш текущий бранч. Давайте посмотрим на последний коммит и вернемся к тому, что было до этого. Очень похоже на чекаут. Чекаут забирал файл из репозитория. Здесь мы сбрасываем изменения в буфере, чтобы они были такими же, как и эти. Нажимаем Return. Он говорит: Unstaged changes after the reset, это изменение - вот для чего нужна M - в resources.html.

Если мы напишем git status, Git скажет нам что-то подобное. Он скажет, что изменение из рабочей директории не занесено в буфер. У нас есть измененный файл resources.html. Если мы захотим добавить его в буфер, мы пропишем git add. Вот так просто. Если вы что-то вставите в буфер, но вы не хотите этого там видеть, вы можете использовать git reset HEAD, и сообщение статуса позволит вам это запомнить.