Git remote -v работает, но при создании новых веток он использует неправильные подмодули - PullRequest
0 голосов
/ 07 октября 2019

Позвольте мне начать с первого, у нас есть 20 клиентов, работающих таким же образом. Я не создавал нашу текущую систему git, но я унаследовал ее. Я получил хорошую информацию о срочном курсе, прежде чем парень покинул компанию.

Несколько недель назад я клонировал репо с именем Go-To из существующего репо Come-From. Он имеет 3 ветви (master, test, preview) для тестирования, которые передаются и используются для просмотра с веб-сайта. У нас есть 3 субмодуля для этого репо. Была создана только одна ветка WF1, в которую были переданы изменения (master, test, preview). Первая проблема, которая возникла, заключалась в том, что подмодули не обновлялись. Я исправил git remote -v для подмодулей, так как они не указывали на правильное место, когда я делал клон. Мне удалось сбросить голову, и все изменения работали нормально. Я заставил нашу веб-команду внести изменения и нажать без проблем.

Теперь к проблеме, которая произошла на следующий день. Другой человек проверил WF1, внес изменения и подтолкнул (master, test, preview), когда это произошло, он каким-то образом создал новые подмодули с именем Go-To-To-system. Теперь вместо 3-х подмодулей у меня есть 6. Я вернулся к исправлению на master, test и WF1, которое мы сделали для тестирования до возникновения проблемы.

запускает новый git-клон из веток, которые они выглядят правильно.

git clone --recurse-submodules -b preview git@myserver:gitrepos/Go-To.git

cd /go-to/system
git checkout preview
git remote -v       
origin git@myserver:gitrepos/Go-To-system.git (fetch)
origin git@myserver:gitrepos/Go-To-system.git (push)

Если я создаю новую ветку, используя написанный скрипт, который работает для всех остальных клиентов. Я получаю это.

git remote -v       
origin git@myserver:gitrepos/Go-To-To-system.git (fetch)
origin git@myserver:gitrepos/Go-To-To-system.git (push)

Подмодули, которые являются правильными: Go-To-system

Подмодули, которые не должны существовать: Go-To-To-system

Я проверил все удаленные -v для ветвей, и они выглядят правильно. Нужно ли что-то исправлять при создании новой ветки?

1 Ответ

0 голосов
/ 09 октября 2019

Я работал над очисткой информации о клиенте из скрипта и заметил этот раздел в разделе для субмодулей. после прохождения команд это то, что вызывает нашу проблему. Это был первый клиент, который использовал тире в имени, и поскольку скрипты использовали тире для извлечения информации из (git remote -v) для подмодулей $. Это вызывало удвоение второй части имени.

если $ createrepo, то для подмодуля в "$ {submodules [@]}" do cd $ submodule;remote = "$ (git remote -v)";дистанционный = "$ {удаленный # '-'}";remote = "$ {remote %% '' }";

Спасибо Кевину Мэнселу за вашу помощь. Я думаю, что просмотр всех сценариев помог мне увидеть проблему. Я все еще изучаю скрипты bash и Git, так что все символы в приведенной выше части, я думаю, сбили меня с толку.

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