Перейти к основному содержимому

Основы управления версиями

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

Вы можете создать отдельную ветку для разработки и внесения изменений. Изменения, которые вы вносите, не сливаются с основной веткой в вашем подключенном репозитории (обычно называемой веткой main), если они не проходят тесты успешно. Это помогает поддерживать организованность кода и повышает продуктивность, делая процесс разработки более плавным.

Вы можете прочитать больше о терминологии git ниже, а также ознакомиться с документацией GitHub.

Обзор Git​

Ниже приведены некоторые общие термины git, с которыми вы можете столкнуться при разработке:

НазваниеОпределение
Репозиторий (repo)Репозиторий — это каталог, в котором хранятся все файлы, папки и содержимое, необходимые для вашего проекта. Его можно представить как базу данных объектов проекта, в которой хранится всё: от самих файлов до их версий, коммитов и удалений. Репозитории не привязаны к одному пользователю: ими можно делиться и их можно копировать.
ВеткаВетка — это параллельная версия репозитория. Она находится внутри репозитория, но не влияет на основную ветку (main), позволяя свободно работать, не нарушая работу текущей версии. Внеся нужные изменения, вы можете слить свою ветку с основной, чтобы опубликовать изменения
Переключение (checkout)Команда checkout используется для создания новой ветки, переключения с текущей рабочей ветки на другую или перехода к другой версии файла из другой ветки.
КоммитКоммит — это изменение, внесённое пользователем в файл (или набор файлов). Когда вы создаёте коммит для сохранения своей работы, Git создаёт уникальный идентификатор, который позволяет отслеживать конкретные зафиксированные изменения, а также сведения о том, кто и когда их внёс. Коммиты обычно содержат сообщение с кратким описанием внесённых изменений.
mainОсновная, базовая ветка всех репозиториев. Все зафиксированные и принятые изменения должны находиться в ветке main.

В Studio IDE основная ветка защищена. Это означает, что при использовании пользовательского интерфейса dbt platform вы не можете напрямую редактировать, форматировать файлы или проверять их линтером, а также выполнять команды dbt в защищённой основной ветке Git. Помните, что все операции Git в Studio IDE подчиняются разрешениям настроенных учётных данных и правилам, заданным у провайдера удалённого Git-репозитория (например, правилам защиты веток в GitHub или GitLab). Поскольку Studio IDE не позволяет создавать коммиты в защищённой ветке, вы можете зафиксировать эти изменения в новой ветке.
Слияние (merge)Слияние переносит изменения из одной ветки в другую (обычно main). Перед слиянием сопровождающим проекта эти коммиты обычно сначала отправляют на рассмотрение через запрос на слияние (pull request).
Запрос на слияние (pull request)Если кто-то изменил код в отдельной ветке проекта и хочет, чтобы изменения проверили перед добавлением в основную ветку, он может создать запрос на слияние. Такой запрос предлагает сопровождающим репозитория проверить внесённые коммиты и, если они приемлемы, слить изменения с основным репозиторием (upstream). Добавление изменений в основную ветку выполняется при их принятии.
Отправка (push)Команда push обновляет удалённую ветку коммитами, созданными в текущей ветке. Вы буквально отправляете свои изменения в удалённый репозиторий.
Удалённый репозиторий (remote)Это версия репозитория или ветки, размещённая на сервере. Удалённые версии можно связать с локальными клонами для синхронизации изменений.

Кнопка git в облачной IDE​

Вы можете выполнять операции git с помощью кнопки git в Studio IDE. Ниже приведены описания команд, доступных через кнопку git, и действий, которые они выполняют:

НазваниеДействия
Abort mergeЭтот параметр позволяет отменить слияние, при котором возникли конфликты. Будьте осторожны: все изменения будут сброшены, и эту операцию нельзя отменить. Поэтому перед началом слияния обязательно зафиксируйте или сохраните все свои изменения.
Change branchЭтот параметр позволяет переключаться между ветками (checkout).
CommitКоммит — это отдельное изменение файла (или набора файлов). Когда вы создаёте коммит, чтобы сохранить свою работу, Git создаёт уникальный идентификатор (также называемый «SHA» или «хеш»), который позволяет отслеживать конкретные зафиксированные изменения, а также сведения о том, кто и когда их внёс. Коммиты обычно содержат сообщение с кратким описанием внесённых изменений. Когда в дальнейшем вы будете изменять код, эти изменения также нужно будет фиксировать в коммитах.
Create new branchЭтот параметр позволяет создать новую ветку на основе базовой и редактировать проект. После инициализации проекта вы заметите, что основная ветка защищена.

Это означает, что вы можете напрямую редактировать и форматировать файлы, проверять их линтером и выполнять команды dbt в защищённой основной ветке git. Когда всё будет готово, вы сможете зафиксировать эти изменения в новой ветке.
Initialize your projectЭто действие выполняется при первоначальной настройке проекта. При инициализации проекта все необходимые каталоги и файлы создаются в пустом репозитории на основе стартового проекта dbt.
Примечание: этот параметр не отображается, если ваш репозиторий не полностью пуст (например, содержит файл README).
После нажатия Initialize your project нажмите Commit, чтобы завершить настройку проекта.
Open pull requestЭтот параметр позволяет открыть запрос на слияние в Git, чтобы коллеги могли проверить изменения перед их слиянием с базовой веткой.
Pull changes from mainЭтот параметр доступен, если вы находитесь в любой локальной ветке, которая отстаёт от удалённой версии базовой ветки или от удалённой версии текущей ветки.
Pull from remoteЭтот параметр доступен, если вы находитесь в локальной базовой ветке и в удалённую версию этой ветки недавно были отправлены изменения. Получение изменений из удалённого репозитория позволяет загрузить последнюю версию базовой ветки.
Rollback to remoteСбрасывайте изменения в репозитории непосредственно из Studio IDE. Вы можете вернуть репозиторий к состоянию более раннего клона удалённого репозитория. Для этого нажмите значок с тремя точками в правом нижнем углу Studio IDE и выберите Rollback to remote.
Refresh git stateЭтот параметр позволяет получить новые ветки из другой удалённой ветки в вашу локальную ветку с помощью одной команды.

Конфликты слияния​

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

Обратитесь к разделу Конфликты слияния, чтобы узнать, как разрешать конфликты слияния.

Файл .gitignore​

dbt использует глобальный файл .gitignore, который автоматически исключает следующие вложенные папки из вашего репозитория git для обеспечения бесперебойной работы:

dbt_packages/
logs/
target/

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

Однако этот глобальный файл .gitignore не применяется напрямую к пользователям dbt v1 и dbt platform CLI. Поэтому, если вы работаете с dbt v1 или dbt platform CLI, необходимо вручную добавить три упомянутые выше строки в файл .gitignore вашего проекта.

Стоит отметить, что некоторые провайдеры Git создают базовый файл .gitignore при создании репозитория, но в нём часто отсутствуют необходимые для dbt исключения. Поэтому для корректной работы dbt важно убедиться, что в ваш файл .gitignore добавлены три упомянутые выше строки.

примечание
  • Проекты dbt, созданные после 1 декабря 2022 года — Если вы используете кнопку Initialize dbt Project в Studio IDE для создания нового пустого проекта dbt, dbt автоматически добавит файл .gitignore с необходимыми записями. Если файл .gitignore уже существует, записи для необходимых папок будут добавлены в существующий файл.

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

Для получения дополнительной информации или советов по устранению неполадок, пожалуйста, обратитесь к подробному FAQ.

Нашли ошибку?

0
Loading