Упрощение управления версиями в Visual Studio с помощью Git

Вам когда-нибудь хотелось, чтобы можно было вернуться к ранее работающей версии кода? Вы вручную храните резервные копии кода в разных местах? Здесь вам поможет управление версиями.

Git — это самая широко используемая система управления версиями в современном мире. С помощью Git вы можете отслеживать изменения, вносимые в код с течением времени, и выполнять откат к определенным версиям. Возможности Git в Visual Studio могут принести большую пользу и новичкам, и профессиональным разработчикам.

Совет

Чтобы узнать об использовании Git и GitHub в Visual Studio, зарегистрируйтесь для прохождения серии курсов Git Learning Series.

Начало работы с Git и GitHub в Visual Studio

С помощью Git можно легко управлять версиями в Visual Studio. Работайте так, как вам удобно: удаленно через выбранного поставщика Git, такого как GitHub или Azure DevOps, или локально без каких-либо поставщиков.

Чтобы начать работу с Git в Visual Studio, сделайте следующее:

  • Если у вас есть Git-репозиторий, размещенный у поставщика, например в GitHub, клонируйте репозиторий на свой локальный компьютер.

  • Либо вы можете легко создать репозиторий Git и добавить свой код. Если у вас еще нет поставщика Git, рекомендуем начать с GitHub, так как именно под этого поставщика оптимизирован интерфейс Git в Visual Studio. GitHub предоставляет бесплатное и защищенное облачное хранилище кода, в котором вы можете хранить код и обращаться к нему с любого устройства и в любом месте.

Вы можете добавить учетные записи GitHub и GitHub Enterprise в свою цепочку ключей и использовать их так же, как учетные записи Майкрософт. Если у вас нет учетной записи GitHub, воспользуйтесь инструкциями, чтобы создать учетную запись GitHub для использования с Visual Studio прямо сейчас.

Если вы новичок в Git, вы можете начать с сайта https://git-scm.com/.

Screenshot of the Create a Git Repository dialog box in Visual Studio.

Просмотр файлов в обозревателе решений

При клонировании репозитория или открытии локального репозитория Visual Studio переключается на контекст Git. Обозреватель решений загружает папку в корне репозитория Git и проверяет дерево каталогов на наличие просматриваемых файлов, например CMakeLists.txt или файлов с расширением .sln. Дополнительные сведения см. в разделе Просмотр файлов в Обозревателе решений.

Интуитивный повседневный рабочий процесс

Для повседневного рабочего процесса Git Visual Studio предоставляет простой способ взаимодействия с Git при написании кода без необходимости покидать свой код.

Вы можете выполнять несколько задач и экспериментировать с кодом с помощью ветвей. Если вы или ваша команда работаете с несколькими компонентами одновременно или хотите опробовать какие-то идеи, не затрагивая рабочий код, ветвление оказывается очень полезным. Рекомендуемый рабочий процесс Git использует новую ветвь для каждого компонента или исправления, над которым вы работаете. Узнайте, как создать ветвь из Visual Studio.

Создав новую ветвь и переключившись на нее, можно начать работу, изменив существующие файлы или добавив новые, а затем зафиксировав работу в репозиторий. Чтобы узнать больше о фиксации в Visual Studio и состоянии файлов в Git см. страницу Фиксация кода.

Git — это распределенная система управления версиями, то есть все изменения, которые мы уже внесли, существуют только локально. Чтобы внести эти изменения в удаленный репозиторий, необходимо отправить локальные фиксации на удаленный узел.

Если вы работаете в команде или используете разные компьютеры, вам также потребуется постоянно получать новые изменения из удаленного репозитория. Дополнительные сведения об управлении сетевыми операциями Git в Visual Studio см. на странице Получение, вытягивание, отправка и синхронизация.

The Visual Studio IDE with the Git menu and the Git Changes tab in Solution Explorer showing.

Управление репозиториями и совместная работа

Однако бывают случаи, когда лучше сосредоточиться на репозитории Git. Например, вы хотите понять, над чем работает команда, скопировать фиксацию из другой ветви или просто очистить исходящие фиксации. Visual Studio включает мощные функции для просмотра репозиториев и совместной работы, благодаря которым использовать другие средства не требуется.

Чтобы вы могли сосредоточиться на репозитории Git, в Visual Studio есть окно Репозиторий Git, в котором представлены все сведения о репозитории, включая локальные и удаленные ветви и журналы фиксации. Открыть это окно можно из меню GIT или Вид либо непосредственно из строки состояния.

The Visual Studio IDE that highlights the Git menu and the Git Changes tab in Solution Explorer.

Просмотр репозиториев Git и управление ими

Дополнительные сведения об использовании окна репозитория Git в Visual Studio для просмотра репозитория Git и управления им см. на следующих страницах:

Разрешение конфликтов слияния

Во время слияния могут возникать конфликты, если два разработчика изменяют одни и те же строки в файле и Git неизвестно, какой вариант правильный. В этом случае GIT прерывает слияние и сообщает о конфликтном состоянии. Дополнительные сведения см. в статье о разрешении конфликтов слияния.

Настройка параметров GIT

Чтобы настроить параметры Git на уровне репозитория, а также на глобальном уровне, выполните приведенные ниже действия.

  1. Перейдите к Git> Параметры в строке меню или >параметров>управления версиями>Git Global Параметры

  2. Затем выберите нужные параметры.

    Screenshot of the Options dialog box where you can choose personalization and customization settings in Visual Studio IDE.

Повышение производительности и производительности

Когда речь идет о интегрированных инструментах Git в Visual Studio, мы продолжаем выполнять итерацию по повышению производительности и производительности. Ниже приведены некоторые важные обновления:

  • Граф фиксации. В Visual Studio 2022 версии 17.2 мы представили функцию графа фиксации, чтобы снизить задержки при просмотре репозитория или журнала филиалов Git. Дополнительные сведения см. в записи блога о суперзарядке Git .

  • Переключение ветви. Кроме того, в Visual Studio 2022 версии 17.2 мы сократили число коммутаторов филиалов, которым требуется перезагрузить решение, по оценкам, на 80 %. Дополнительные сведения см. в записи блога о переключении филиалов Git.

Существует еще больше обновлений функций в Visual Studio 2022 версии 17.6, чтобы включить возможность поиска и связывания с проблемами GitHub и рабочими элементами Azure DevOps, среди нескольких. Чтобы получить все сведения, ознакомьтесь с записью блога о функциях Git для повышения производительности .

Теперь Git является интерфейсом системы управления версиями по умолчанию в Visual Studio 2019. Начиная с версии 16.6 мы работаем над созданием набора функций на основе ваших отзывов. В версии 16.8 Git стал интерфейсом управления версиями по умолчанию для всех.

Примечание.

Мы продолжаем расширять набор возможностей Git в Visual Studio 2022. Дополнительные сведения о последнем обновлении компонентов см. в записи блога Поддержка нескольких репозиториев в Visual Studio.

Подробнее о Git

Git — это наиболее широко используемая современная система управления версиями, которая может быть полезна как профессиональным разработчикам, так и только начинающим изучать программирование. Если вы новичок в Git, вы можете начать с сайта https://git-scm.com/. Там вы найдете памятки, популярную электронную книгу и видеоматериалы по основам Git.

Начало работы с Git в Visual Studio 2019

Мы рассмотрим, как использовать новый интерфейс Git в Visual Studio, но если вы хотите сначала ознакомиться с кратким обзором, проверка следующее видео:

Длина видео: 5,27 минут

Существует три способа начать использование Git в Visual Studio для повышения производительности:

Примечание.

Начиная с версии 16.8 Visual Studio 2019 включает полностью интегрированный интерфейс для работы с учетными записями GitHub. Теперь вы можете добавить в цепочку ключей учетные записи GitHub и GitHub Enterprise. Вы сможете добавлять и использовать их так же, как и учетные записи Майкрософт. Это позволит упростить доступ к ресурсам GitHub в Visual Studio. Дополнительные сведения см. на странице Работа с учетными записями GitHub в Visual Studio.

Совет

Если у вас нет учетной записи GitHub, можно начать с выполнения действий, описанных в разделе Создание учетной записи GitHub для использования с Visual Studio.

Создание нового репозитория Git в Visual Studio 2019

Если ваш код не связан с GIT, можно начать с создания нового репозитория GIT. Для этого в строке меню выберите GIT>Создать репозиторий GIT. Затем в диалоговом окне Создание репозитория GIT введите свои данные.

The Create a Git Repository dialog box in Visual Studio.

С помощью диалогового окна Создание репозитория GIT можно легко отправить новый репозиторий в GitHub. По умолчанию новый репозиторий является частным. Это означает, что доступ к нему есть только у вас. Если снять соответствующий флажок, репозиторий будет общедоступным. Это означает, что любой пользователь в GitHub сможет его просмотреть.

Совет

Независимо от того, является ли репозиторий общедоступным или частным, лучше создать удаленную резервную копию кода, которая будет безопасно храниться в GitHub, даже если вы работаете сами по себе. Это также позволит вам получать доступ к коду с любого компьютера.

Вы можете создать исключительно локальный репозиторий GIT, выбрав параметр Только локальный. Вы также можете связать локальный проект с любым существующим пустым удаленным репозиторием, размещенным в Azure DevOps или у любого другого поставщика Git, с помощью параметра Существующий удаленный репозиторий.

Клонирование существующего репозитория Git в Visual Studio 2019

В Visual Studio процесс клонирования прост. Если вы знаете URL-адрес репозитория, который нужно клонировать, можно вставить его в разделе Расположение репозитория, а затем выбрать место на диске, в которое будет клонирован репозиторий.

The Clone a Git Repository dialog box in Visual Studio.

Если вы не знаете URL-адрес репозитория, в Visual Studio можно легко перейти к существующему репозиторию GitHub или Azure DevOps и выбрать его.

Открытие существующего локального репозитория в Visual Studio 2019

После клонирования или создания репозитория GIT Visual Studio обнаружит его и добавит в список Локальные репозитории в меню GIT.

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

The Local Repositories option from the Git menu in Visual Studio

Просмотр файлов в Обозревателе решений в Visual Studio 2019

При клонировании репозитория или открытии локального репозитория Visual Studio переключается в этот контекст GIT, сохраняя и закрывая все ранее открытые решения и проекты. Обозреватель решений загружает папку в корне репозитория Git и проверяет дерево каталогов на наличие просматриваемых файлов. К ним относятся такие файлы, как CMakeLists.txt или файлы с расширением SLN.

Visual Studio настраивает представление в зависимости от файла, загруженного в обозреватель решений:

  • При клонировании репозитория, содержащего один SLN-файл, обозреватель решений напрямую загружает это решение.
  • Если обозреватель решений не обнаруживает файлов SLN в репозитории, по умолчанию он загружает представление папки.
  • Если репозиторий содержит несколько файлов SLN, то обозреватель решений выводит список доступных представлений для выбора.

Переключаться между текущим представлением и списком представлений можно с помощью кнопки Переключить представления на панели инструментов обозревателя решений.

Solution Explorer with the Switch Views button selected in Visual Studio.

Дополнительные сведения см. в разделе Просмотр файлов в обозревателе решений учебника Открытие проекта из репозитория.

Окно "Изменения Git" в Visual Studio 2019

GIT отслеживает изменения файлов в репозитории в процессе работы и разделяет файлы на три категории. Это те же изменения, которые отображаются при вводе команды git status в командной строке.

  • Неизмененные файлы: эти файлы не изменились с момента последней фиксации.
  • Измененные файлы: эти файлы имеют изменения с момента последней фиксации, но вы еще не выполнили их для следующей фиксации.
  • Промежуточные файлы: эти файлы имеют изменения, которые будут добавлены в следующую фиксацию.

В процессе работы Visual Studio отслеживает изменения в файлах проекта в разделе Изменения окна Изменения GIT.

The Git Changes window in Visual Studio.

Когда вы будете готовы подготовить изменения, нажмите кнопку + (плюс) для каждого из файлов, которые необходимо подготовить, или щелкните файл правой кнопкой мыши и выберите пункт Промежуточно сохранить. Можно также подготовить все измененные файлы одним щелчком мыши, используя кнопку "Промежуточно сохранить все" (+) в верхней части раздела Изменения.

При подготовке изменения Visual Studio создает раздел Подготовленные изменения. Только изменения из раздела Подготовленные изменения добавляются к следующей фиксации, которую можно выполнить, выбрав команду Зафиксировать промежуточные. Эквивалентная команда для этого действия — git commit -m "Your commit message". Можно также отменить подготовку изменений, нажав кнопку  (минус). Эквивалентная команда для этого действия — git reset <file_path> для отмены размещения одного файла или git reset <directory_path> для отмены размещения всех файлов в каталоге.

Кроме того, можно отказаться от подготовки измененных файлов, пропустив область подготовки. В этом случае Visual Studio позволяет зафиксировать изменения напрямую без предварительной подготовки. Просто введите сообщение о фиксации и выберите Зафиксировать все. Эквивалентная команда для этого действия — git commit -a.

Visual Studio также позволяет выполнить фиксацию и синхронизацию одним щелчком мыши с помощью ярлыков Зафиксировать все и отправить и Зафиксировать все и синхронизировать. Если дважды щелкнуть любой файл в разделе Изменения или Подготовленные изменения, то можно построчно сравнить измененную версию файла с неизмененной.

The line-by-line comparison of file versions in Visual Studio

Совет

Если вы подключены к репозиторию Azure DevOps, вы можете связать рабочий элемент Azure DevOps с фиксацией, используя символ #. Чтобы подключить репозиторий Azure DevOps, выберите Team Explorer>Управление подключениями.

Выбор существующей ветви в Visual Studio 2019

В Visual Studio текущая ветвь отображается в селекторе в верхней части окна Изменения GIT.

The current branches that you can view by using the selector at the top of the Git Changes selector in Visual Studio

Текущая ветвь также доступна в строке состояния в правом нижнем углу интегрированной среды разработки Visual Studio.

The current branches that you can view by using the status bar at the bottom-right corner in the Visual Studio IDE

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

Создание новой ветви в Visual Studio 2019

Можно также создать новую ветвь. Эквивалентная команда для этого действия — git checkout -b <branchname>.

Чтобы создать ветвь, достаточно ввести ее имя и указать существующую ветвь, на основе которой будет создана данная.

The Create a New Branch dialog box in Visual Studio

В качестве базовой можно выбрать существующую локальную или удаленную ветвь. Если флажок Извлечь ветвь установлен, вы автоматически переключитесь на новую ветвь после ее создания. Эквивалентная команда для этого действия — git checkout -b <new-branch><existing-branch>.

Окно репозитория Git в Visual Studio 2019

В Visual Studio имеется новое окно Репозиторий GIT, в котором представлены все сведения о репозитории, включая все ветви, удаленные репозитории и журналы фиксации. Открыть это окно можно из меню GIT или Вид либо непосредственно из строки состояния.

Управления ветвями в Visual Studio 2019

При выборе в меню GIT пункта Управление ветвями отображается древовидное представление ветвей в окне Репозиторий GIT. В левой области можно использовать контекстное меню для извлечения, создания, объединения ветвей, перемещения изменений из одной ветви в другую, отбора изменений и других действий. Щелкнув ветвь, можно просмотреть ее журнал фиксаций в правой области.

Входящие и исходящие фиксации в Visual Studio 2019

При принесении ветви в окне Изменения GIT под раскрывающемся списком ветвей отображается индикатор, который показывает количество фиксаций, которые не были вытянуты из удаленной ветви. Он также показывает число локальных фиксаций, которые не были отправлены.

The Git Changes window that shows the indicator drop-down UI element in Visual Studio

Индикатор также является ссылкой, по которой можно перейти к журналу фиксаций этой ветви в окне Репозиторий GIT. В начале журнала теперь отображаются сведения об этих входящих и исходящих фиксациях. Здесь можно также вытянуть или отправить фиксации.

The Git Repository window that shows the commit history of a branch in Visual Studio

Сведения о фиксации в Visual Studio 2019

Если дважды щелкнуть фиксацию, в Visual Studio откроются сведения о ней в отдельном окне инструментов. Здесь можно отменить фиксацию, сбросить ее, исправить сообщение о фиксации или создать тег для нее. Если щелкнуть измененный файл в фиксации, в Visual Studio откроется инструмент сравнения, в котором рядом друг с другом показаны фиксация и ее предок.

The Commit Details dialog box in Visual Studio

Обработка конфликтов слияния в Visual Studio 2019

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

В Visual Studio можно легко выявлять и устранять конфликты слияния. Во-первых, в верхней части окна Репозиторий GIT имеется золотистая информационная панель.

The 'Merge completed with conflicts' message in Visual Studio

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

The 'Merge in progress with conflicts' message in Visual Studio

Но если ни одно из этих окон не открыто и вы переходите к файлу с конфликтами слияния, вам не придется искать следующий текст:

    <<<<<<< HEAD
    =======
    >>>>>>> main

Вместо этого в верхней части страницы в Visual Studio отображается золотистая информационная панель с сообщением о наличии конфликтов в открытом файле. Щелкните ссылку, чтобы открыть редактор слияния.

Screenshot of 'File contains merge conflicts' message in Visual Studio

Редактор слияния в Visual Studio 2019

Редактор слияния в Visual Studio позволяет выполнять трехстороннее сравнение: в нем приводятся входящие изменения, текущие изменения и результат слияния. С помощью панели инструментов вверху редактора слияния можно переходить между конфликтами и просматривать результаты автоматического слияния в файле.

The Merge Editor in Visual Studio

Можно также использовать переключатели для отображения и скрытия различий, отображения и скрытия различий в словах и настройки макета. Вверху с каждой стороны есть флажки, с помощью которых можно перенести все изменения с одной стороны на другую. Чтобы перенести отдельные изменения, можно установить флажки слева от конфликтующих строк с любой стороны. Завершив разрешение конфликтов, нажмите в редакторе слияния кнопку Принять слияние. После этого нужно ввести сообщение о фиксации и зафиксировать изменения, чтобы завершить процесс разрешения.

Персонализация параметров Git в Visual Studio 2019

Чтобы настроить параметры GIT на уровне репозитория, а также на глобальном уровне, выберите в строке меню пункты GIT>Параметры или Сервис>Параметры>Управление исходным кодом. Затем выберите нужные параметры.

The Options dialog box where you can choose personalization and customization settings in Visual Studio IDE.

Использование всех возможностей Team Explorer в Visual Studio 2019

Новый интерфейс GIT — это система контроля версий по умолчанию в Visual Studio 2019 начиная с версии 16.8. Однако при желании этот интерфейс можно отключить. Чтобы вернуться в Team Explorer для Git, выберите Средства>Параметры>Среда>Функции предварительной версии и снимите флажок Новый пользовательский интерфейс Git.

The Preview Features section of the Options dialog box in Visual Studio