После того, как вы создали несколько коммитов или же склонировали репозиторий с уже существующей историей коммитов, вероятно вам понадобится возможность посмотреть, что было сделано – историю коммитов.
Одним из основных инструментов для этого является раздел Граф системы управления версиями (Source Control Graph) в представлении Система управления версиями (Source Control).
В этом разделе в обратном хронологическом порядке перечислены коммиты, сделанные в репозитории ?—?последние коммиты находятся вверху. Для каждого коммита указано его сообщение и автор.
При наведении мыши на коммит отображается подробная информация о нем: дата, количество измененных файлов, количество вставленных и удаленных строк, SHA-1 контрольная сума коммита.
Контрольная сумма и надпись Сообщение помечены значками копирования . Это говорит о том, что вы можете нажать на них и скопировать эти значения в буфер обмена.
Вы можете увидеть изменения, внесенные каждым коммитом. Для этого достаточно нажать на коммит или выполнить его контекстную команду Просмотреть изменения (View Changes). Visual Studio Code откроет редактор сравнения, в котором вы увидите измененные строки для каждого файла из коммита в отдельности.
Эту возможность очень удобно использовать для проверки кода (code review) или для быстрого просмотра серии внесенных изменений.
Кроме всего перечисленного Visual Studio Code рисует граф, показывающий историю ветвления и слияния. Если вы работаете с единственной веткой main, такой граф не принесет вам много пользы. Но если вы активно используете много разных веток, на этом графе будет хорошо видно, в каких именно ветках выполнялись изменения и как они вливались в другие ветки.
С левой стороны вы видите граф, а с правой стороны имена веток, указывающие на последний коммит в каждой из веток. На этом рисунке показано, что для выполнения задачи issue-20 была создана ветка feature/issue-20. Пока эта задача выполнялась, в основой ветке исправили ошибку bug-83. После этого результат разработки из ветки feature/issue-20 влили в основную ветку main и затем исправили в ней еще одну ошибку bug-92.
Такой граф будет очень интересен вам в следующей главе, где вы рассмотрите ветвление и слияние.
Как вы видите, раздел Граф системы управления версиями (Source Control Graph) предоставляет лишь самые необходимые, базовые возможности работы со списком коммитов. Поэтому в начале книги, где шла речь про установку и первоначальную настройку Git, вы установили расширение Git Graph, представляющее больше возможностей для работы с историей коммитов.
Чтобы открыть это расширение, нажмите (View Git Graph (git log)) в строке репозитория или в заголовке раздела Система управления версиями (Source Control). В заголовке раздела эта команда появляется при наведении мыши на заголовок.
Git Graph так же показывает список коммитов в обратном хронологическом порядке и граф веток.
Если вы нажмете на коммит, откроется панель с подробной информацией о нем.
Помимо полного идентификатора коммита здесь указаны автор и комиттер. Автор?—?это человек, изначально сделавший работу, а коммитер?—?это человек, который последним применил эту работу. Другими словами, если вы создадите патч для какого-то проекта, а один из основных членов команды этого проекта применит этот патч, вы оба получите статус участника?—?вы как автор, а основной член команды как коммитер. Более детально вы рассмотрите разницу в главе Распределенный Git.
Если вы нажмете на файл в списке измененных файлов, вы увидите детальные отличия, внесенные этим коммитом. При наведении мыши на файл появляются дополнительные значки, позволяющие скопировать в буфер обмена полный путь к файлу, открыть файл в том виде, в котором он был зафиксирован этим коммитом или в том виде, в котором он сейчас находится в рабочем каталоге.
Помимо перечисленного Git Graph обладает еще одной полезной возможностью — поиском коммитов по фрагменту сообщения, имени ветки, имени метки, автора, или идентификатора (контрольной суммы).
Чтобы начать поиск, откройте поисковую строку, нажав на лупу в заголовке панели.
Найденные фрагменты подсвечиваются, вы можете переходить по ним вперед и назад, а также открывать подробности текущего коммита.
Помимо расширения Git Graph существуют и другие расширения, которые Microsoft рекомендует использовать в Visual Studio Code для работы с историей коммитов. Вы можете найти их в конце этого раздела и выбрать подходящее вам.
История коммитов может быть очень разветвленной и может содержать большое количество слияний. Зачастую есть необходимость ограничить количество коммитов, отображаемых в истории. Вы можете сделать этот как в разделе Граф системы управления версиями (Source Control Graph), так и в расширении Git Graph.
В разделе Граф системы управления версиями (Source Control Graph) можно нажать (Автоматически / Auto) в заголовке этого раздела.
В палитре команд появится выбор веток, с помощью которого вы можете оставить на экране только те ветки, с которыми работаете в данный момент или которые анализируете.
В расширении Git Graph существует аналогичный переключатель в заголовке панели. Но кроме этого вы можете отдельно отключать показ веток удаленного отслеживания (Remote Branches). Про ветки удаленного отслеживания вы узнаете в следующей главе.
По материалам книги Pro Git (авторы Scott Chacon и Ben Straub, издательство Apress). Книга распространяется по лицензии Creative Commons Attribution Non Commercial Share Alike 3.0 license.