Поделиться через


Управление репозиториями Git в Visual Studio

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

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

Открытие окна репозитория Git

Чтобы открыть окно репозитория Git, выберитепросмотреть> репозиторий Git (или нажмите клавиши CTRL +0, CTRL+R) или нажмите клавиши CTRL+Q и в разделе Функции, выполните поиск репозитория Git.

Объяснить фиксацию с помощью чата GitHub Copilot

С помощью Visual Studio 2022 версии 17.10 предварительный выпуск 2 и более поздних версий, а также расширений GitHub Copilot, вы можете использовать ИИ для генерации подробного описания коммита, описывающего эти изменения. Нажмите кнопку "Объяснение", чтобы запросить у GitHub Copilot создание описания коммита. Сведения об установке GitHub Copilot см. в статье Установка и управление GitHub Copilot в Visual Studio.

снимок экрана кнопки 'Объяснить', чтобы запросить у GitHub Copilot создание объяснения коммита.

Изменить последний коммит (исправить)

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

Вы можете изменить коммит в командной строке с помощью следующей команды:

git commit --amend

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

Скриншот редактирования сообщения коммита.

После завершения редактирования комментария к коммиту выберите Изменить.

снимок экрана: сохранение измененного сообщения путем нажатия кнопки

Если вам нужно включить изменения кода в ваш последний коммит, вы можете сделать это в окне Изменения в Git. Установите флажок Изменить и зафиксируйте изменения.

снимок экрана: изменение изменений кода с помощью окна изменений Git.

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

Фиксации слиянием (объединение)

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

Вы можете объединить два коммита в командной строке с помощью следующей команды:

git rebase -i HEAD~2

Затем измените pick на squash, сохраните изменения и обновите сообщение коммита.

снимок экрана с изменением команды

Чтобы объединить коммиты в Visual Studio, используйте клавишу Ctrl , чтобы выбрать несколько коммитов, которые требуется объединить. Затем щелкните правой кнопкой мыши и выберите Squash Commits. Visual Studio автоматически объединяет сообщения коммита, но иногда лучше предоставить обновленное сообщение. После просмотра и обновления сообщения фиксации нажмите кнопку Squash.

снимок экрана сквашивания фиксаций в Visual Studio.

Дополнительные сведения о сжатии коммитов (сквашировании) см. в разделе Инструменты Git - Переписывание истории на сайте Git.

Слияние и перебазовка ветвей

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

Заметка

Следующие инструкции используют New_Feature в качестве примера имени ветви компонентов. Замените его именем собственной ветви.

Чтобы объединить основную ветвь в ветвь компонентов в командной строке, используйте следующие команды:

git checkout New_Feature
git merge main

Чтобы сделать то же самое в Visual Studio, ознакомьтесь с ветвью компонентов, дважды щелкнув ее в списке ветвей. Затем щелкните правой кнопкой мыши "основной" и выберите Объединить "основной" с "New_Feature".

Снимок экрана слияния ветвей в Visual Studio.

Чтобы перебазировать основную ветвь в ветвь компонентов в командной строке, используйте следующие команды:

git checkout New_Feature
git rebase main

Чтобы сделать то же самое в Visual Studio, ознакомьтесь с ветвью компонентов, дважды щелкнув ее в списке ветвей. Затем щелкните правой кнопкой мыши на main и выберите перебазировать 'New_Feature' на 'main'.

снимок экрана: реорганизация веток в Visual Studio.

Дополнительные сведения о слиянии, перебазировании и ветвлениях в целом см. в разделе Git Branching на веб-сайте Git.

Копирование коммитов (cherry-pick)

Скопируйте коммиты из одной ветки в другую с помощью команды cherry-pick. В отличие от слияния или перебазировки, избирательный перенос переносит только изменения из выбранных коммитов, а не все изменения в ветке. Избирательный подход — отличный способ справиться с этими распространенными проблемами.

  • Случайный коммит в неправильную ветку. Выберите изменения в правильной ветви, а затем сбросить исходную ветвь до предыдущей фиксации.
  • Извлечение набора коммитов из фича-ветки, чтобы объединить их с основной веткой раньше.
  • Перенос определенных фиксаций из основной ветви без повторной балансировки ветви.

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

git cherry-pick 7599e530

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

снимок экрана: выбор вишни в Visual Studio.

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

Чтобы узнать больше о команде cherry-pick и фиксациях, см. веб-страницу Git для команды cherry-pick.

Отменить изменения

Используйте команду "возврат", чтобы отменить изменения, внесенные в коммиты, отправленные в общие ветки. Команда revert создает новую фиксацию, которая отменяет изменения, внесенные в предыдущую фиксацию. Команда revert не перезаписывает журнал репозитория, что делает его безопасным для использования при работе с другими пользователями.

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

git revert 53333305
git commit

В предыдущем примере команды отменят изменения, внесенные в фиксацию 53333305, и создадут новую фиксацию в ветви. Исходный коммит по-прежнему находится в истории коммитов Git. Чтобы сделать то же самое в Visual Studio, щелкните правой кнопкой мыши коммит, который вы хотите откатить, а затем выберите Revert. После подтверждения действия и завершения операции Visual Studio отображает сообщение об успешном выполнении, а новая фиксация появляется в разделе Исходящих.

снимок экрана: восстановление в Visual Studio.

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

Снимок экрана подтверждения операции восстановления.

Элемент меню Revert может быть серым (отключен) в определенных обстоятельствах, например для фиксаций слияния или при выполнении операции Git.

Дополнительные сведения о возврате изменений можно найти на веб-странице Git о команде revert.

Сброс ветки в предыдущее состояние

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

Предупреждение

Не сбрасывайте общие ветви, так как вы можете удалить работу других пользователей. Вместо этого используйте команду revert.

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

git reset --hard 53333305

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

снимок экрана, на котором показано сброс ветви в Visual Studio.

Дополнительные сведения о сбросе ветвей см. на веб-странице Git , посвящённой команде сброса.