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

Видео урок: Редактирование телефонного номера технической поддержки

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

В этом ролике мы начнем вносить изменения в наш веб сайт explore_california, чтобы у вас появилось четкое представление, на что могут быть похожи реальные изменения. Для начала давайте отредактируем контактный телефон 24-часовой поддержки. Спускаемся вниз страницы. Вот внизу, в контактах (Contact), мы видим номер 24-часовой поддержки, и он выглядит как 4315. А мы поменяем его на 4314. В футере (нижнем колонтитуле) он находится на каждой HTML странице. Иногда его можно увидеть и в тексте, например, на странице Contact. Его можно увидеть здесь в абзаце текста. А мы хотим их всех поменять.

Конечно, можно открывать каждый из этих файлов и по очереди вносить в них изменения. Я же собираюсь использовать TextMate, чтобы отредактировать проект. Я могу переместить папку в TextMate, он откроет ее как проект, и большое преимущество заключается в том, что я могу использовать Find in Project (поиск в проекте) и найти все номера 4315 в целом проекте. Перепроверяю их, убеждаюсь, что они действительны, что ни один из них не является чем-то, кроме номера поддержки, а затем я могу поменять их на 4314, используя Replace All. Теперь они все изменены, но эти изменения еще не сохранены на диск.

Чтобы сделать это, мне нужно нажать Save All. Теперь все изменения сохранены в мою рабочую директорию. Их нет ни в буфере, ни в репозитории, только в рабочей директории. Если сейчас мы напишем git status, вы увидите, что все эти файлы перечислены как измененные. Прежде чем мы их закоммитим, я хочу вам что-то показать, а именно, как использовать git diff здесь. Мы видели, как работает эта команда с одним файлом, например, contact.html. Давайте рассмотрим diff. Обратите внимание на несколько вещей. Во-первых, она дает нам два куска, которые здесь были изменены.

Один кусок вверху, второй внизу. Этот показывает нам со строки 71 семь строк. Вот строка 71, отсчет семь строк. На самом деле, это будет восемь строк, потому что данная строка находится в разделе с минусами. А эта строка находится в разделе с плюсами, а раздел с плюсами показан мне со строки 71, семь строк. Таким образом, эта измененная строка показана дважды. Семь строк, одна из них повторяется дважды, и в итоге восемь строк. То же самое и здесь. Эти номера строк очень полезны, потому что мы можем просмотреть наш файл с контактами, мы можем прокрутить вниз до строки 71, здесь находится наше изменение, или контекст для нашего изменения, если вы находитесь на этой странице.

Если вы сейчас просматриваете, вот текст, который действительно изменился, он прямо здесь. Если вы просматриваете. Вот здесь номер телефона, это кусочек текста, который был изменен. Теперь, обратите внимание, что этот кусочек текста можно растянуть. Если я буду его растягивать, он будет расширяться, пока я не попаду сюда, но это такая длинная строка, что я этого и не хочу. Это хорошая причина оставлять строки короткими, если это возможно, а HTML на самом деле не волнуют разрывы строк. Он не зависит от пробелов. Однако, другой трюк заключается в том, что все это можно пропустить через так называемый пейджер.

Он показывает мне страницы результатов, и по факту если я воспользуюсь скроллом, вы можете увидеть, что сейчас он меня спрашивает. Он подсказывает мне, ждет меня, чтобы вставить пробел и показать мне остальные результаты, и я могу использовать F и B, чтобы пройти вперед или назад по этим результатам. Это такой пейджер, встроенный в UNIX. И я использую пейджер, чтобы просмотреть результаты. В пейджере есть такая возможность, когда я могу запустить его, используя команду -R, и ее можно настроить в глобальной конфигурации. Если я нахожусь внутри его, я могу нажать клавишу "минус", а затем Shift+S, а затем Return, и он обработает эти длинные строки.

То есть он их обернет, вместо того чтобы строки были обрезаны. А если я хочу вернуться назад, -S и Return обрубят эти длинные строки. Как я уже говорил, все это можно настроить в конфигурационном файле, если вы хотите все время быть на этом пути. Все зависит от вас и от вашего стиля работы. Обратите внимание, что здесь довольно просто увидеть разницу между строками, 4315 изменился на 4314. Нажимаю Quit. Снова пишем git diff, как мы делали до этого, но на этот раз я добавляю сюда опцию, а именно color-words.

Итак, git diff с опцией color-words contact.html. Обратите внимание, что команда дает мне ту же самую информацию, но вместо двух отдельных строк она предоставляет другой формат – изменения вставлены рядом. Это одна из многих опций, которые можно использовать с diff, чтобы информация была представлена другим способом. Допустим, вы не хотите видеть одну строку над другой, а хотите, чтобы выходные данные были окрашены, и таким образом вы видите разницу. Для этого можно использовать опцию color-words.

Итак, мы достаточно всего увидели. Теперь можно вернуться и сделать коммит. Прямо сейчас изменения находятся в рабочей директории, мы пока не отправили их в буфер. Вы знаете, что мы можем использовать git add и отправить их все за раз при помощи git add с точкой, таким образом они будут отправлены в буфер. Вместо этого я хочу показать вам другой способ, как можно это сделать. Это сокращение. Мы можем написать git commit с опцией -a, и она скажет Git добавить изменения в буфер и закоммитить их. Все за раз. То есть изменения будут добавлены и закоммичены. Мы можем пропустить этап добавления изменений одно за другим.

Но существует несколько нюансов, и вы должны быть с ними осторожными. Во-первых, конечно, такая команда "захватывает" все, что находится в рабочей директории. Таким образом, если есть что-то, что вы не хотите включать в изменения, то оно все равно будет отправлено. Вторая закавырка заключается в том, что файлы, которые не отслеживаются, или файлы, которые были удалены, не включаются в изменения. Эта команда хорошо подходит для модификаций, но для новых и удаленных файлов она не работает. В данном случае я просто внес изменения, я знаю, что как только я все добавлю, я могу все это закоммитить. Так что данная команда мне подходит. Затем я использую опцию -am, чтобы добавить сообщение. Я пишу - Changed 24 hour support number to 4314 (Номер поддержки изменен на 4314). Вот и все.

Я закоммитил изменения, пишем git status, вы видите, что рабочая директория чиста. Из рабочей директории изменения попали в буфер, а затем в репозиторий. git log покажет вам этот второй коммит. Еще раз, опцию -a нужно использовать очень осторожно.