Сохранение работы с фиксациями

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

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

В этой статье приведены процедуры для следующих задач:

  • Как Git отслеживает изменения
  • Что такое фиксация
  • Этап изменения
  • Создание фиксации
  • Обновление последней фиксации

Общие сведения о рабочем процессе Git см . в руководстве по Azure Repos Git.

Как Git отслеживает изменения

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

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

Снимок экрана: жизненный цикл файлов в репозитории между тремя состояниями.

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

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

Что такое фиксация

Каждая фиксация содержит следующие сведения:

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

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

Этап изменения

Создание моментального снимка для фиксации:

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

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

Примечание.

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

Visual Studio 2022 предоставляет интерфейс управления версиями Git с помощью меню Git, изменений Git и контекстных меню в Обозреватель решений. Visual Studio 2019 версии 16.8 также предлагает пользовательский интерфейс Team Обозреватель Git. Дополнительные сведения см. на вкладке Visual Studio 2019 — Team Обозреватель.

В окне "Изменения Git" щелкните правой кнопкой мыши файл в разделе "Изменения" и выберите "Этап", чтобы добавить его в раздел "Поэтапное изменение".

Снимок экрана: параметр

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

Вы можете сообщить Git игнорировать файл, щелкнув его правой кнопкой мыши и выбрав "Игнорировать этот локальный элемент " или "Пропустить это расширение". Любая команда создает файл gitignore в репозитории, если он не существует, и добавляет в него запись. Пропущенные файлы не отображаются в разделе "Изменения" в Visual Studio. Однако файл .gitignore не влияет на отслеживаемые файлы. Сведения о настройке Git для пропуска отслеживаемых файлов см. в разделе "Игнорировать файлы". Чтобы сэкономить время, вы можете скачать gitignore шаблоны для различных сред разработки из репозитория GitHub gitignore .

Примечание.

Начиная с Visual Studio 2022 версии 17.3 Visual Studio поддерживает промежуточные частичные изменения в файле. Дополнительные сведения см. в разделе "Этапы кода" в Visual Studio.

Создание фиксации

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

Снимок экрана: ссылка на сведения о фиксации в Visual Studio.

Выберите ссылку фиксации для сведений о фиксации.

Снимок экрана: сведения о фиксации связывают окно

Примечание.

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

Снимок экрана: параметр

Обновление последней фиксации

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

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

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

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

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

Снимок экрана: параметр

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

Следующие шаги