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

Видео урок: Просмотр изменений при помощи diff

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

В последнем ролике мы рассмотрели, как редактировать файлы и как коммитить их в репозиторий. В этом ролике мы изучим, как просмотреть сделанные изменения, прежде чем мы примем решение о том, коммитить ли их в репозиторий. Прежде чем мы начнем, давайте сделаем некоторые изменения. Открываем наш first_file.txt, а это первый файл, добавленный в проект, я набираю пробел, и он становится впереди всех остальных файлов. Нажимаю Return. Сохраняю все это и закрываю. Теперь мы знаем, что произойдет, если мы напишем git status, нам будет сказано, что файл был изменен, верно? А сейчас мы узнаем, что это были за изменения.

Это очень полезно, особенно, если мы работали несколько часов и внесли много изменений во много файлов, и мы можем немного удивиться, когда в списке измененных файлов всплывет файл, а мы не помним, что вносили в него изменения. Как мы можем освежить нашу память? Что было изменено в этом файле? В мире UNIX часто используют программу, которая называется diff, D-I-F-F, чтобы сравнить два файла. И Git использует тот же самый термин, чтобы показать нам разницу между старой версией и новой версией. И мы пишем git diff.

Таким образом, git diff сравнит два файла, он сравнивает тот, что в репозитории, версию, на которую указывает HEAD, с тем, что находится в рабочей директории. Версия в репозитории - это та, что с минусами, а та, что с плюсами, это новая версия. Первая версия, и это первая строка, что я добавил в мой проект. В новой версии данная строка заменена на эту строку, это первый файл, добавленный в мой проект, и добавлено еще две строки, и он идет перед другими файлами. Конечно, я изменил здесь только маленький кусочек текста, и Git не говорит нам об этом, он говорит нам строка за строкой, в чем заключается разница.

Он также отмечает, что нет новой строки в конце этого файла, и это обозначает, что у нас нет возвращения строки после точки. Вот здесь у нас есть возвращение строки. Вы можете проигнорировать эту строку, не сильно переживайте по этому поводу. Главное, что вы увидите, это то, что строка была удалена, эта строка была добавлена, также как добавлены эти две строки, вот что мы видим. Если бы у нас был большой документ, скажем, в 300 строк длиной, для нас был бы выделен только маленький кусочек, который был изменен. Он не покажет нам целый документ, он просто скажет - вот этот кусочек был изменен, а этот маленький кусочек скажет нам номера строк, на которые мы смотрим. Это тонкий, но важный момент.

В большинстве тектовых редакторов есть способ просмотреть номера строк. Например, в TextMate, в меню View в Gutter я могу попросить показать мне номера строк. И он покажет мне номера, а это поможет мне найти данные изменения, в зависимости от того, что было сказано в файле diff. Теперь, если бы у нас были изменения в большем числе файлов, давайте посмотрим, давайте откроем третий файл и просто скажем - На данный момент это последний файл в проекте. Сохраните это, вернитесь, и давайте снова взглянем на git diff.

И вы видите, что эта команда говорит нам, что есть изменения в первом файле, есть изменения в третьем файле, и они перечислены друг за другом. Если бы мне нужен был только один набор изменений, я бы написал git diff с first_file.txt, и мне были бы показаны изменения только для одного этого файла. таким образом, мы видим все изменения, которые были сделаны, все изменения перечислены здесь под Modified, или мы можем переходить от файла к файлу и просматривать каждый. И когда мы это делаем, мы видим разницу между версией из репозитория и версией в рабочей директории.

В следующем ролике мы изучим, как просмотреть изменения, находящиеся в буфере.