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

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

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

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

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

Изменение последней фиксации (изменение)

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

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

git commit --amend

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

Снимок экрана: редактирование сообщения фиксации.

После завершения редактирования сообщения фиксации нажмите кнопку "Изменить".

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

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

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

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

Фиксации слиянием (скваш)

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

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

git rebase -i HEAD~2

Затем обновите picksquashсообщение о фиксации, сохраните и обновите его.

Снимок экрана: выбор обновления для сквош.

Чтобы объединить фиксации в 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, проверка ветвь компонента, дважды щелкнув его в списке ветвей. Затем щелкните правой кнопкой мыши main и выберите "Объединить main" в "New_Feature".

Снимок экрана: объединение ветвей в Visual Studio.

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

git checkout New_Feature
git rebase main

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

Снимок экрана: повторная ветвь в Visual Studio.

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

Копирование фиксаций (вишня-выбор)

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

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

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

git cherry-pick 7599e530

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

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

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

Дополнительные сведения о фиксациях выбора вишни см. на веб-странице Git для команды выбора вишни.

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

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

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

git revert 53333305
git commit

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

Снимок экрана: отменить изменения ing в Visual Studio.

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

Снимок экрана: подтверждение операции отменить изменения.

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

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

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

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

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

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

git reset --hard 53333305

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

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

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