Управление репозиториями 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.
Изменить последний коммит (исправить)
Обновление последнего коммита называется исправлением в Git, и это распространенный вариант использования. Иногда вам просто нужно обновить комментарий к коммиту, или может потребоваться включить изменения в последний момент.
Вы можете изменить коммит в командной строке с помощью следующей команды:
git commit --amend
Окно репозитория Git упрощает обновление последнего сообщения фиксации. Откройте сведения о последнем коммите, дважды нажав на него, а затем выберите параметр Редактировать для сообщения коммита.
После завершения редактирования комментария к коммиту выберите Изменить.
Если вам нужно включить изменения кода в ваш последний коммит, вы можете сделать это в окне Изменения в Git. Установите флажок Изменить и зафиксируйте изменения.
Дополнительную информацию о внесении изменений, включая изменение сообщений коммитов, отличных от самого последнего, можно найти в разделе Инструменты Git — Переписывание истории на веб-сайте Git.
Фиксации слиянием (объединение)
Чтобы объединить серию фиксаций, Git предоставляет возможность объединить несколько фиксаций в одну. Этот параметр может быть полезным, если вы часто делаете коммиты и в итоге у вас получается длинный список коммитов, которые необходимо очистить перед отправкой в удаленный репозиторий.
Вы можете объединить два коммита в командной строке с помощью следующей команды:
git rebase -i HEAD~2
Затем измените pick
на squash
, сохраните изменения и обновите сообщение коммита.
Чтобы объединить коммиты в Visual Studio, используйте клавишу Ctrl , чтобы выбрать несколько коммитов, которые требуется объединить. Затем щелкните правой кнопкой мыши и выберите Squash Commits. Visual Studio автоматически объединяет сообщения коммита, но иногда лучше предоставить обновленное сообщение. После просмотра и обновления сообщения фиксации нажмите кнопку Squash.
Дополнительные сведения о сжатии коммитов (сквашировании) см. в разделе Инструменты Git - Переписывание истории на сайте Git.
Слияние и перебазовка ветвей
Если вы используете ветви Git для работы с различными функциями, в какой-то момент вам потребуется включить обновления, представленные в других ветвях. Это может произойти, пока вы по-прежнему работаете в ветви функций. Это также может произойти, когда вы закончите работу с функциональной веткой и должны сохранить свои изменения, перенеся их в другую ветку. В Git можно включить эти обновления, объединяя или перебазируя ветви.
Заметка
Следующие инструкции используют New_Feature в качестве примера имени ветви компонентов. Замените его именем собственной ветви.
Чтобы объединить основную ветвь в ветвь компонентов в командной строке, используйте следующие команды:
git checkout New_Feature
git merge main
Чтобы сделать то же самое в Visual Studio, ознакомьтесь с ветвью компонентов, дважды щелкнув ее в списке ветвей. Затем щелкните правой кнопкой мыши "основной" и выберите Объединить "основной" с "New_Feature".
Чтобы перебазировать основную ветвь в ветвь компонентов в командной строке, используйте следующие команды:
git checkout New_Feature
git rebase main
Чтобы сделать то же самое в Visual Studio, ознакомьтесь с ветвью компонентов, дважды щелкнув ее в списке ветвей. Затем щелкните правой кнопкой мыши на main и выберите перебазировать 'New_Feature' на 'main'.
Дополнительные сведения о слиянии, перебазировании и ветвлениях в целом см. в разделе Git Branching на веб-сайте Git.
Копирование коммитов (cherry-pick)
Скопируйте коммиты из одной ветки в другую с помощью команды cherry-pick. В отличие от слияния или перебазировки, избирательный перенос переносит только изменения из выбранных коммитов, а не все изменения в ветке. Избирательный подход — отличный способ справиться с этими распространенными проблемами.
- Случайный коммит в неправильную ветку. Выберите изменения в правильной ветви, а затем сбросить исходную ветвь до предыдущей фиксации.
- Извлечение набора коммитов из фича-ветки, чтобы объединить их с основной веткой раньше.
- Перенос определенных фиксаций из основной ветви без повторной балансировки ветви.
Чтобы скопировать изменения из коммита в текущую ветвь с помощью командной строки, используйте следующую команду:
git cherry-pick 7599e530
Чтобы сделать то же самое в Visual Studio, просмотрите ветвь, из которой вы хотите выбрать фиксацию, выбрав ее одним щелчком мыши. Затем щелкните правой кнопкой мыши целевую фиксацию и выберите вишневый выбор.
По завершении операции Visual Studio отображает сообщение об успешном выполнении. Выбранный вами коммит отображается в разделе Исходящие.
Чтобы узнать больше о команде cherry-pick и фиксациях, см. веб-страницу Git для команды cherry-pick.
Отменить изменения
Используйте команду "возврат", чтобы отменить изменения, внесенные в коммиты, отправленные в общие ветки. Команда revert создает новую фиксацию, которая отменяет изменения, внесенные в предыдущую фиксацию. Команда revert не перезаписывает журнал репозитория, что делает его безопасным для использования при работе с другими пользователями.
Чтобы отменить изменения, внесенные в коммит с помощью командной строки, используйте следующие команды. Замените примерный идентификатор на идентификатор реального коммита в вашей ветке.
git revert 53333305
git commit
В предыдущем примере команды отменят изменения, внесенные в фиксацию 53333305, и создадут новую фиксацию в ветви. Исходный коммит по-прежнему находится в истории коммитов Git. Чтобы сделать то же самое в Visual Studio, щелкните правой кнопкой мыши коммит, который вы хотите откатить, а затем выберите Revert. После подтверждения действия и завершения операции Visual Studio отображает сообщение об успешном выполнении, а новая фиксация появляется в разделе Исходящих.
Выберите новую фиксацию, чтобы убедиться, что она отменяет изменения возвращенной фиксации.
Элемент меню Revert может быть серым (отключен) в определенных обстоятельствах, например для фиксаций слияния или при выполнении операции Git.
Дополнительные сведения о возврате изменений можно найти на веб-странице Git о команде revert.
Сброс ветки в предыдущее состояние
Используйте команду сброса, чтобы вернуть ветвь в вашем локальном репозитории к содержимому предыдущей фиксации. Это действие отменяет все изменения, которые произошли с момента фиксации, к которой вы возвращаете ветвь.
Предупреждение
Не сбрасывайте общие ветви, так как вы можете удалить работу других пользователей. Вместо этого используйте команду revert.
Чтобы сбросить ветвь в предыдущее состояние с помощью командной строки, используйте следующую команду. Замените пример идентификатора идентификатором реального коммита в вашей ветке.
git reset --hard 53333305
--hard
часть команды сообщает Git сбросить файлы в состояние предыдущей фиксации и отменить любые проиндексированные изменения. Чтобы сделать то же самое в Visual Studio, щелкните правой кнопкой мыши на коммите, на который нужно сбросить вашу ветвь, а затем выберите Сброс>Удалить изменения (--hard).
Дополнительные сведения о сбросе ветвей см. на веб-странице Git , посвящённой команде сброса.