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