Как сохранить тесты отдельно от основной ветки с git?

Я довольно новичок в git, и мне особенно интересно поддерживать тестовые примеры для проекта в его репозитории.

  1. Это для небольшого проекта Bash, и у меня есть несколько репозиториев. Я хотел бы сохранить тестовые примеры в рамках одного и того же репо. Как я могу это сделать? Поддерживаю ли я долговечную ветвь тестирования, где я объединю изменения в ветви dev, запускает тесты и затем объединяется в ветвь релиза? Но это заставит меня вишнево выбрать функцию / изменение из тестовой ветви (предполагая, что я также вношу изменения во время тестовой ветви), чтобы я также избегал слияния тестовых случаев. Модели ветвления, на которых я смотрел, говорят о запуске тестовых наборов для новых коммитов в ветку dev как объект CI / CD, работающий отдельно. Это имеет смысл для большого проекта и удобен, но не для небольшого?

  2. Кроме того, как бы я сам продвигал разработку тестов? Не поддерживали бы отдельные репозитории для тестовых случаев для каждого такого проекта, просто раздувая количество репозиториев?

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

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

Один трюк заключается в следующем:

  • держите свои тесты в отдельной ветке
  • обратитесь к вашему тесту из основной ветви в качестве подмодуля

Полный пример: Какой самый простой способ развернуть папку в ветке в git?

Вы проводите тесты в тесте филиала, который вы нажимаете.
Затем вы добавляете эту ветвь в качестве подмодуля в мастер:

git submodule add -b test git@github.com:user/repo.git test git commit -m "added test as submodule" git push 

Выбранное репо (в производстве) по умолчанию имеет пустую тестовую подпапку.
Если вы добавите (в разработке) git submodule update --init , тогда тестовая вложенная папка будет включать тестовый контент.

Каждый раз, когда вы изменяете свои тесты, вы добавляете, фиксируете и нажимаете из подмодуля (который настроен на то, чтобы нажать на test ветку).
Затем вернитесь к родительской папке (той, что находится в master ветке), добавьте, зафиксируйте и нажмите измененную gitlink ( специальная запись в индексе, представляющая новый SHA1 для репозитория test субмодуля)