Возможно ли иметь главную ветку, содержащую подмодули ветвей из одного и того же хранилища? - PullRequest
0 голосов
/ 03 ноября 2018

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

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

Возможно ли это? Есть ли лучший способ?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Вот решение, с которым я в конечном итоге остановился:

# Enter desired directory
cd ~/Documents/GitHub/

# Create a directory to contain the branches
mkdir Branches-as-Submodules

# Enter directory
cd Branches-as-Submodules

# Clone
git clone https://github.com/brianjenkins94/Branches-as-Submodules.git master

# Create a branch module
git checkout project1
git push --set-upstream origin project1

# Two for good measure
git checkout project2
git push --set-upstream origin project2

# Clone branches
git clone --branch project1 https://github.com/brianjenkins94/Branches-as-Submodules.git project1
git clone --branch project2 https://github.com/brianjenkins94/Branches-as-Submodules.git project2

# Enter master
cd master

# Configure submodule(s)
git submodule add --branch project1 https://github.com/brianjenkins94/Branches-as-Submodules.git project1
git submodule add --branch project2 https://github.com/brianjenkins94/Branches-as-Submodules.git project2

# Add changes
git add .

# Commit changes
git commit -m "Added submodule(s)"

# Push changes
git push origin master:master

# Feel free to make changes to any branch at this point (not using checkout)
# But at some point come back to master and run:
git submodule update --remote
git add .
git commit -m "Updated submodule(s)"
git push origin master:master

# Final note: In the installation instructions of your README, have the consumer use:
git clone --recursive https://github.com/brianjenkins94/Branches-as-Submodules.git
0 голосов
/ 03 ноября 2018

Я думаю, вы могли бы сделать это очень просто. Просто добавьте подмодули -> укажите ваш текущий репозиторий как ссылку на источник -> и переключитесь на нужную ветку. Но, чтобы не было путаницы, может стоит изменить структуру вашего текущего хранилища? Поместите общие тесты, скрипты и т. Д. В отдельный репозиторий; затем создайте репозитории для этого примера кода на разных языках -> добавьте как репозиторий подмодулей с общим содержимым -> и используйте эти репозитории как субмодули в вашем основном репозитории. Или пример кода может быть разработан в одном и том же хранилище, но в разных ветках. Тогда у вас будет 3 репозитория: основной, репо с примерами кодов и репо с общим контентом.

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