фатальный: удаленный <Repository>уже существует - PullRequest
0 голосов
/ 19 ноября 2018

В рамках разработки потока CI & CD для компании, в которой я работаю, я создаю программу командной строки (сценарий Bash для OSX), которая

  • создает новый локальный репозиторий Git
  • добавляет несколько веток по умолчанию к этому репо
  • Затем добавляет новое репо в Bitbucket, используя следующий код:

gitUserName = Joris <-- provided by the user, this is an example projectName = TestProject <-- provided by the user, this is an example git remote add $projectName "https://bitbucket.org/$gitUserName/$projectName.git"

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

Кроме того, когда я запускаю git push $projectName master, он говорит fatal: repository 'https://bitbucket.org/Joris/TestProject.git/' not found

Это поведение кажется противоречивым, и я имеюследуя руководству Atlassian , чтобы настроить это, я не очень понимаю, почему он не добавляет хранилище, как ожидалось.Я понимаю, что я также могу просто зайти на сайт BitBucket и добавить репозиторий вручную, но цель моей программы состоит в том, чтобы она генерировала полностью настроенный репозиторий для пользователя, основанный на как можно меньшем количестве команд.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

В документации git remote add говорится, что команда добавляет удаленный сервер в локальный репозиторий. Эта терминология, IMO, немного неправильная; было бы лучше сказать, что он добавляет удаленную конфигурацию в локальный репозиторий (т. е. настраивает репо на access remote). Это на самом деле не создает удаленного репо; это должно быть сделано отдельно.

В случае с битбакетом "обычная" вещь, которую нужно сделать, это зайти на сайт и создать репо через их пользовательский интерфейс. Поскольку вы пытаетесь автоматизировать вещи, вы не хотите этого делать; поэтому в этом случае вам потребуется использовать API-интерфейс REST BitBucket, который описан здесь: https://developer.atlassian.com/server/bitbucket/reference/rest-api/

В разделе «Core API» говорится о репозиториях и разрешениях, поэтому вы должны иметь возможность составлять сценарии запросов для (при необходимости) проверки наличия репо и его настройки, если его нет. Вам просто понадобится способ, чтобы ваш скрипт отправлял HTTP-запросы и получал ответы.

0 голосов
/ 19 ноября 2018

На вашем компьютере:

Создать репо:

git init 

Добавить филиалы:

git checkout -b branchX
git checkout -b branchY
git checkout -b branchZ

На сайте Bitbucket:

Создать новый репозиторийс именем TestProject, разрешить права на запись для пользователя Joris в настройках и сохранить.Наконец, скопируйте URL-адрес хранилища, это должно быть что-то вроде bitbucket.mydomain: port / nameofproject / testproject.git ( Обратите внимание, что все это в нижнем регистре )

На вашем компьютере:

git remote add origin theURL
git push origin *:* 
git push origin --tags

Последней является команда для отправки всего вашего локального репо, она перезапишет историю и теги в вашем удаленном репо, но, поскольку это новый репо, это не имеет значения.

...