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

Видео урок: Внесение, получение изменений и возврат

Принципы контроля версий

ОК, у нас есть хранилище Git в каталоге g1. Прежде чем мы начнем добавлять файлы, давайте установим два элемента конфигурации Git, чтобы все наши изменения отмечались нашим именем и электронной почтой. Мы введем git config user.name и git config user.email. Это не мой настоящий адрес электронной почты. Теперь мы можем добавить некоторый код.

Мы собираемся использовать содержимое страницы с сообщениями об ошибках для нового проекта о хайку. Мы выберем то, с чем сталкивались мы все, прежде чем начали использовать контроль версий. Я создам файл f1.c и функцию main print f. With searching comes loss, and the presence of absence. "\My Novel\" not found.\n".

Конечно, если вы начали использовать контроль версий, вы не часто будете видеть эту ошибку, но вы помните это чувство. Итак, мы сохраним файл и закроем его. Теперь мы добавим его в хранилище в два этапа. Во-первых, мы должны сказать Git, чтобы он начал отслеживать файл, введя git add f1.c, а затем мы запросим у Git статус нашего рабочего набора. Он скажет, что есть новый файл, не внесенный в систему. Теперь мы добавим его в хранилище с помощью команды git commit, и вы можете видеть, что был закоммичен один файл.

Если мы запросим у Git статус, он скажет, что коммитить нечего. Если мы выведем логи, git log, вы можете увидеть здесь сообщение о том, что мы совершили первоначальную фиксацию и три дополнительных строки информации, которые мы сейчас и рассмотрим. Первая строка содержит ID коммита, или идентификатор набора изменений. Это 40-значная шестнадцатеричная строка - GUID, или глобальный уникальный идентификатор. Чаще всего при использовании Git вам будет нужно ввести только первые четыре или пять символов этого GUID, так что не пугайтесь, он не будет запрашивать 40-значные номера.

Но вы должны ввести достаточно символов, чтобы однозначно идентифицировать набор изменений. Итак, особенно в своей системе, это, наверное, четыре цифры. Когда вы начнете работать с большим количеством людей, вероятно, понадобится пять или шесть символов, не больше. Теперь давайте внесем изменения, чтобы увидеть контроль версий в Git в действии. Мы в очередной раз открываем f1.c и изменяем My Novel на Website, может быть, более подходящее сообщение для интернета. Теперь мы снова вносим его в систему, но на этот раз мы будем использовать редактор, встроенный в Git, чтобы ввести сообщение коммита.

Мы введем git commit -a, и в этом случае Git откроет Vim - редактор, который позволяет вводить сообщения коммита. Мы введем Changed my novel to website, и, так как это Vim, он понимает все эти замечательные команды VI, которые вы, возможно, уже знаете и любите. В этом случае, я нажимаю клавишу Escape и ввожу :wq, чтобы сохранить сообщение и закрыть редактор, и теперь он сделает коммит. И если мы пропишем git log, вы можете увидеть два изменения: первый коммит и коммит с сообщением Changed my novel to website.

Если вы просто хотите увидеть идентификаторы наборов изменений и комментарии, можно ввести git log --oneline --all, и вы увидите первые семь цифр каждого из тех ID наборов изменений и сообщение коммита. Теперь давайте сделаем еще одно изменение, а затем выполним возврат. Итак, еще раз мы открываем f1.c, изменяем Website на Webpage и сохраняем файл. Теперь, если мы хотим увидеть различия между нашим рабочим набором и тем, что находится в хранилище, мы можем ввести git diff, и он покажет одну строку, в которой мы изменили website на webpage.

Git показывает различия для всех файлов, которые были изменены в рабочем наборе. Если вы хотите увидеть изменения только для одного файла, вы можете ввести git diff и имя файла. В нашем случае результат будет точно такой же, но, если бы у вас было 25 файлов, вы получили бы довольно много информации. Вы также можете просмотреть различия между рабочим набором и конкретным набором изменений. Итак, если мы введем git log, мы увидим, что у есть два набора изменений. Давайте просмотрим разницу между нашим рабочим набором и не самым последним, в котором мы изменили My Novel на Website, а начальным, в которым у нас было My Novel.

Мы введем git diff и номер 87b53, и посмотрим, что произойдет. Теперь вы можете увидеть разницу между тем коммитом, который мы назвали Initial check in, и текущим состоянием нашего рабочего набора. В текущем рабочем наборе, как выделено здесь зеленым, стоит Webpage, а в первоначальном коммите - My Novel. Ваши номера наборов изменений будут отличаться от этих. Вы должны будете выполнить git log в своей системе и ввести первые пять цифр реального ID, потому что идентификаторы GUID генерируются частично на основе адреса Mac для адаптера Ethernet вашего компьютера, и он явно будет отличаться от системы, на которой мы записываем этот курс.

Теперь давайте вернемся к нашему последнему коммиту. Итак, введем git checkout HEAD f1.c. Если мы сейчас выведем f1.c, вы можете увидеть, что мы вернулись к слову Website. Вы также можете вернуться к любому конкретному изменению, а не только самому последнему, с помощью команды checkout. Итак, выполним git log и теперь вернемся к исходному коммиту, так что мы вводим git checkout 87b53 f1.c. Теперь, если мы откроем f1.c, вы увидите, что мы вернулись к слову My Novel.

Обратите внимание, что ни одно из изменений в вашем хранилище не было потеряно. Вы просто обновляете рабочий набор информацией из хранилища. Так, например, мы можем ввести git checkout HEAD f1.c, и мы вернемся к слову Website. ОК, это базовые операции для внесения изменений, получения изменений и выполнения возврата в Git. Давайте перейдем к созданию тегов в Git.