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

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

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

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

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

Обзор Git

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

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

В облачной IDE основная ветка защищена. Это означает, что вы не можете напрямую редактировать, форматировать или проверять файлы и выполнять команды dbt в вашей защищенной основной ветке git. Поскольку облачная IDE dbt предотвращает коммиты в защищенную ветку, вы можете зафиксировать эти изменения в новой ветке.
MergeСлияние берет изменения из одной ветки и добавляет их в другую (обычно основную) ветку. Эти коммиты обычно сначала запрашиваются через pull request перед слиянием их мейнтейнером.
Pull RequestЕсли кто-то изменил код в отдельной ветке проекта и хочет, чтобы его проверили для добавления в основную ветку, он может отправить pull request. Pull requests просят мейнтейнеров репозитория проверить сделанные коммиты и, если они приемлемы, слить изменения в основную ветку. Pull происходит при добавлении изменений в основную ветку.
Pushpush обновляет удаленную ветку с коммитами, сделанными в текущей ветке. Вы буквально отправляете свои изменения в удаленный репозиторий.
RemoteЭто версия репозитория или ветки, которая размещена на сервере. Удаленные версии могут быть подключены к локальным клонам, чтобы изменения могли быть синхронизированы.

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

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

НазваниеДействия
Прервать слияниеЭта опция позволяет отменить слияние, которое имело конфликты. Будьте осторожны с этим действием, так как все изменения будут сброшены, и эту операцию нельзя будет отменить, поэтому убедитесь, что вы зафиксировали или сохранили все свои изменения перед началом слияния.
Изменить веткуЭта опция позволяет переключаться между ветками (checkout).
CommitКоммит — это индивидуальное изменение в файле (или наборе файлов). Когда вы делаете коммит, чтобы сохранить свою работу, Git создает уникальный идентификатор (также известный как "SHA" или "хэш"), который позволяет вам сохранить запись о конкретных изменениях, кто их сделал и когда. Коммиты обычно содержат сообщение коммита, которое является кратким описанием внесенных изменений. Когда вы в будущем вносите изменения в свой код, вам также нужно будет их зафиксировать.
Создать новую веткуЭто позволяет вам ответвиться от вашей базовой ветки и редактировать ваш проект. Вы заметите после инициализации вашего проекта, что основная ветка защищена.

Это означает, что вы можете напрямую редактировать, форматировать или проверять файлы и выполнять команды dbt в вашей защищенной основной ветке git. Когда будете готовы, вы можете зафиксировать эти изменения в новой ветке.
Инициализировать ваш проектЭто делается при первой настройке вашего проекта. Инициализация проекта создает все необходимые директории и файлы в пустом репозитории, используя стартовый проект dbt.
Примечание: эта опция не будет отображаться, если ваш репозиторий не полностью пуст (например, содержит файл README).
После нажатия Инициализировать ваш проект, нажмите Commit, чтобы завершить настройку вашего проекта.
Открыть pull requestЭто позволяет вам открыть pull request в Git, чтобы коллеги могли проверить изменения перед слиянием в базовую ветку.
Получить изменения из mainЭта опция доступна, если вы находитесь на любой локальной ветке, которая отстает от удаленной версии базовой ветки или удаленной версии ветки, на которой вы сейчас находитесь.
Получить из удаленногоЭта опция доступна, если вы находитесь на локальной базовой ветке и изменения недавно были отправлены в удаленную версию ветки. Получение изменений из удаленного репозитория позволяет вам получить самую последнюю версию базовой ветки.
Откат к удаленномуСбросьте изменения в вашем репозитории напрямую из облачной IDE. Вы можете откатить ваш репозиторий к более раннему клону из вашего удаленного. Для этого нажмите на троеточие в правом нижнем углу IDE и выберите Откат к удаленному.
Обновить состояние gitЭто позволяет вам получить новые ветки из другой удаленной ветки в вашу локальную ветку с помощью одной команды.

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

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

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

Файл .gitignore

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

dbt_packages/
logs/
target/

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

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

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

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

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

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

0