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

Видео урок: Просмотр изменений, находящихся в буфере

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

В последнем ролике мы рассмотрели, как можно использовать git diff, чтобы получить информацию о том, какие изменения произошли в нашей рабочей директории. В этом ролике мы рассмотрим, как мы можем сделать то же самое с буфером. И, во-первых, конечно, нам нужно отправить что-то в буфер, так что давайте отправим first_file.txt. Для этого мы пишем git add first_file.txt, и теперь он в буфере. Команда git status покажет нам, что изменения сейчас находятся в буфере. Изменения к third_file.txt находятся только в нашей рабочей директории.

Если мы сейчас напишем git diff, мы получим отчет об изменениях, которые находятся в рабочей директории. В общем, когда раньше я говорил вам, что эта команда сравнивает рабочую директорию с репозиторием, это не совсем так, на самом деле она сравнивает буфер и репозиторий. Таким образом, они сейчас уникальны, они только различаются для рабочей директории. Так что, каковы изменения для first_file, как мы можем их увидеть? В общем, мы снова используем git diff, но сейчас мы передаем другую опцию, то есть пишем git diff --staged.

Это опция для diff, которая говорит просмотреть то, что находится в буфере, и сравнить с репозиторием. И сейчас мы видим только изменения, которые были сделаны в first_file.txt. Итак, git diff сама по себе вернет изменения, которые находятся в рабочей директории. Я также хочу отметить, что git diff --staged в версиях Git до 1.6 на самом деле называлась cached. Но она была не совсем понятной, поэтому было принято решение назвать ее staged.

Сейчас вы работаете с Git версией 1.7 или более поздней, так что вы смело можете использовать staged, хотя cached тоже будет работать, и эта опция делает то же самое, она возвращает ту же самую информацию. Но мы все же будем использовать staged. И, конечно, как и раньше, если мы напишем git add для third_file, затем git status, вы увидите, что оба этих файла находятся в буфере, и git diff не возвращает изменений, а git diff --staged покажет нам оба набора изменений.

А теперь напоследок давайте сохраним наши изменения. Их можно закоммитить, они находятся в буфере, так что давайте напишем git commit и добавим простое сообщение, например, Minor text edits (маленькие изменения в тексте). Теперь изменения закоммичены, и если мы напишем git status, увидим, что рабочая директория снова чиста.