Как отправить локальное репо в Bitbucket с помощью SourceTree, не создавая сначала репо на Bitbucket?

116

Есть ли способ импортировать мои локальные репозитории git в SourceTree и отправить их в мою учетную запись Bitbucket, создав в моей учетной записи новые репозитории, идентичные моим локальным репозиториям? Или мне нужно сначала сделать репо онлайн и подтолкнуть к этому? У Github есть способ публиковать ваши локальные репозитории непосредственно из своего клиента, и он создает их автоматически при публикации, но у него есть ограниченные частные репозитории. Я просто делаю домашнее задание, поэтому нет причин для его публикации, поэтому я пытаюсь использовать битбакет.

cma0014
источник

Ответы:

152

(обновлено 3-29-2019, чтобы использовать https вместо ssh, поэтому вам не нужно использовать ключи ssh)

Похоже, что для BitBucket сначала нужно создать репо онлайн. Используя инструкции Atlassian , просто создайте новый репозиторий BitBucket, скопируйте URL-адрес репозитория в буфер обмена, а затем добавьте этот репозиторий в качестве нового пульта дистанционного управления в свой локальный репозиторий (полные шаги приведены ниже):

Получить URL-адрес репо

  1. в репозитории BitBucket выберите "Клонировать" в правом верхнем углу.
  2. выберите «HTTPS» вместо «SSH» в правом верхнем углу диалогового окна.
  3. он должен показать ваш URL-адрес репо в форме git clone <repository url>

Добавить удаленный с помощью CLI

  1. cd /path/to/my/repo
  2. git remote add origin https://bitbucket.org/<username>/<reponame>.git
  3. git push -u origin --all

Добавить удаленное использование SourceTree

  1. Репозиторий> Добавить удаленный ...
  2. Вставьте URL-адрес репозитория BitBucket ( https://bitbucket.org/<username>/<reponame>.git)

Старый метод: создание и регистрация ключей SSH

(этот метод используется, если вы используете URL-адрес ssh вместо URL-адреса https, который выглядит так ssh://git@bitbucket.org/<username>/<reponame>.git. Я рекомендую просто использовать https)

BitBucket отлично подходит для частных репозиториев, но вам необходимо настроить ключ ssh, чтобы авторизовать ваш компьютер для работы с вашей учетной записью BitBucket. К счастью, Sourcetree делает это относительно простым:

Создание ключа в SourceTree:

  1. В Tools> Options, убедитесь , что SSH Client:установлен в PuTTY/Plinkрамках Generalвкладке
  2. Выбрать Tools>Create or Import SSH Keys
  3. Во всплывающем окне щелкните Generateи переместите указатель мыши, чтобы задать случайность генератору ключей.
  4. У вас должно получиться что-то вроде того, что показано на скриншоте ниже. Скопируйте открытый ключ (выделен синим) в буфер обмена

    шпатлевка

  5. Нажмите Save private Keyи, Save public keyчтобы сохранить ключи в любом месте (например, в <Home Dir>/putty/ssk-key.ppkи <Home Dir>/putty/ssh-key.pubсоответственно), прежде чем перейти к следующему разделу.

Регистрация ключа в BitBucket

  1. Войдите в свою учетную запись BitBucket и в правом верхнем углу щелкните изображение своего профиля и щелкнитеSettings
  2. Перейдите на SSH Keysвкладку на левой боковой панели
  3. Щелкните Add SSH Key, дайте ему имя и вставьте открытый ключ, который вы скопировали на шаге 4 предыдущего раздела.

Это оно! Теперь у вас должна быть возможность отправлять / извлекать ваши частные репозитории BitBucket. Ваши ключи не только для Git, многие службы используют ключи ssh для идентификации пользователей, и самое приятное то, что вам нужен только один. Если вы когда-нибудь потеряете свои ключи (например, при смене компьютера), просто следуйте инструкциям по созданию и регистрации нового.

Примечание: создание ключей SSH с помощью интерфейса командной строки

Просто следуйте этому руководству

woojoo666
источник
использование Paste the BitBucket repository url (git@bitbucket.org/<username>/<reponame>.git)заставит вас добавить ключ ssh. Если у вас еще нет существующего, будет боль.
Alex Kyriakidis
1
да, BitBucket в основном предназначен для частных репозиториев, поэтому для начала вам понадобится ключ ssh. Не волнуйтесь, все не так плохо, как кажется! Я добавил к своему ответу краткое руководство
woojoo666
3
Почему вы, ребята, боретесь с SSH и публичными / приватными ключами, когда использовать HTTPS намного проще? В Cloneдиалоговом окне переключите верхний правый раскрывающийся список с SSH на HTTPS и получите URL-адрес:https://bitbucket.org/<reponame>.git
Дэн Дар3
1
@ DanDar3 Да, спасибо, это избавило меня от лишних хлопот.
Excrubulent
1
@ DanDar3 вау, это намного проще, я обновил ответ, спасибо!
woojoo666
24

На самом деле есть более простое решение (только в версии для Mac). Всего четыре шага:

  1. Щелкните репозиторий правой кнопкой мыши и выберите «Опубликовать на удаленном ...»

SourceTree Публикация в Remote Screeshot

  1. В следующем окне будет предложено опубликовать (github, bitbucket и т. Д.), И тогда все будет готово.
  2. Свяжите удаленный репозиторий
  3. От себя
Дэвид
источник
Это должно быть ново. Я действительно давно не пользовался репозиториями, так что попробую.
cma0014
3
На самом деле я проверил, что это только в версии SourceTree для Mac, а не в Windows. :(
Дэвид
1
Да, я проверил, что он создает репо на пульте дистанционного управления, но затем не связывает его с пультами локального репозитория. Было бы неплохо для следующих версий
Дэвид
1
@bauerMusic это случилось со мной также с окном «в процессе». Но не в последнее время. Хотя, как вы уже сказали ... что-то не так с этой функцией. Он не связан с новым удаленным репо, как мы все ожидали. Несмотря ни на что, SourceTree - лучший менеджер GIT для Mac, который я нашел.
Дэвид
1
На самом деле он работает идеально для меня, он создает репо и связывает его с локальным и удаленным, может быть, с 2016 года они его улучшают
Кросс
10

Как показывает это видео , обычным способом является создание репо в Интернете.

В примечаниях к выпуску SourceTree упоминается для SourceTree 1.5+:

Поддержка создания новых репозиториев под учетными записями команды / организации в Bitbucket.

Таким образом, хотя здесь нет функции «публикации», вы можете создать свое онлайн-репо из SourceTree.

В сообщении блога « SourceTree для Windows 1.2 здесь » (сентябрь 2013 г.) также упоминается:

Теперь вы можете настроить свои учетные записи Bitbucket, Stash и GitHub в SourceTree и мгновенно увидеть все свои репозитории на этих сервисах. Легко клонируйте их, открывайте проект в Интернете и даже создавайте новые репозитории на удаленной службе, даже не покидая SourceTree .
Вы найдете его в меню «Просмотр»> «Показать размещенные репозитории» или с помощью новой кнопки в правом нижнем углу панели закладок.

http://blog.sourcetreeapp.com/files/2013/09/hostedrepowindow.png

VonC
источник
Я попробую это, когда вернусь домой, Спасибо!
cma0014
Да, но создание локальной папки разработчика в репозитории оказывается сложной задачей.
Бен Расикот
3

Я использовал это, и у меня это сработало. Если ваш каталог

"репо" и ваш проект "привет" скопируйте проект туда

cd /path/to/my/repo

Инициализируйте свой каталог

git init

Сценировать проект

git add hello

зафиксировать проект

git commit

Добавьте конфигурации, используя адрес электронной почты и имя пользователя, которые вы используете в Bitbucket.

git config --global user.email
git config --global user.name

Добавить комментарий к проекту

git commit -m 'comment'

продвигай проект сейчас

git push origin master

Выписка от мастера

git checkout master
bademba
источник
3

Bitbucket поддерживает REST API, который можно использовать для программного создания репозиториев Bitbucket.

Документация и образец cURL доступны здесь: https://confluence.atlassian.com/bitbucket/repository-resource-423626331.html#repositoryResource-POSTanewrepository

$ curl -X POST -v -u username:password -H "Content-Type: application/json" \
   https://api.bitbucket.org/2.0/repositories/teamsinspace/new-repository4 \
   -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks" }'

Под Windows curl доступен из оболочки Git Bash.

Используя этот метод, вы можете легко создать скрипт для импорта многих репозиториев с локального сервера git в Bitbucket.

Джо Сэвидж
источник
1

Настройка репозитория Bitbucket (командная строка с Mac)

Создайте новое ПРИЛОЖЕНИЕ, начиная с локального репозитория:

  1. Терминал -> cd ~ / Documents (вставьте путь к базовому каталогу ПРИЛОЖЕНИЯ)
  2. Терминал -> mkdir (создать каталог с помощью)
  3. Терминал -> cd (сменить каталог на каталог)
  4. BitBucket A / C -> создать репозиторий в учетной записи bitBucket
  5. Xcode -> создать новый проект xcode с тем же именем
  6. Терминал -> git init (инициализировать пустое репо)
  7. Терминал -> git remote add origin (например, https: //app@bitbucket.org/app/app.git )
  8. Терминал -> git add.
  9. Терминал -> статус git
    1. Терминал -> git commit -m "IntialCommet"
    2. Терминал → git push origin master

Создать репозиторий клонов ПРИЛОЖЕНИЯ:

  1. Терминал -> mkdir (создать каталог с помощью)
  2. Терминал -> cd (сменить каталог на каталог)
  3. Терминал -> git clone (например, https: //app@bitbucket.org/app/app.git )
  4. Терминал -> cd
  5. Терминал -> git status (Показать статус редактирования / обновления файла)
  6. Терминал → git pull origin master
  7. Терминал -> git add.
  8. Терминал → git push origin master
Шрикант Танваде
источник
1

Другое решение для пользователей Windows:

При этом Github используется в качестве моста для доступа к Bitbucket, что вызвано отсутствием публикации непосредственно из приложения Windows Sourcetree.

  1. Загрузите локальное репо в настольное приложение Github.
  2. Опубликуйте репо как частное (для конфиденциальности - при желании) репо из настольного приложения Github в свою учетную запись Github.
  3. Откройте личную / командную учетную запись на веб-сайте Bitbucket
  4. Создайте новое репозиторий Bitbucket, импортировав из Github.
  5. Удалите репо в Github.

Как только это будет сделано, все будет загружено в Bitbucket. Ваши локальные пульты, вероятно, нужно будет настроить так, чтобы они указывали на Bitbucket сейчас.

Дэвид Руис
источник
0

GIT хорошо служит своей цели для контроля версий и командных проектов, если коммиты и ветки поддерживаются должным образом.
Шаг 1. Клонируйте локальное репо с помощью cli, как указано в ответах выше.

$ cd [path_to_repo]
$ git remote add origin ssh: //git@bitbucket.org//.git
$ git push -u origin --all

Шаг 2: Вы можете выполнить любой из вышеперечисленных шагов, чтобы подтолкнуть / вытащить свои работы. Простой способ - использовать git gui. Он предоставляет графический интерфейс, так что легко ставить (добавлять) / отключать, фиксировать / отменять и нажимать / тянуть. Новички могут легко понять процесс git.

$ git gui

(ИЛИ)
Шаг 2: Как указано выше. Cli-коды сделают всю работу.

$ git status
$ git add [имя_файла]
$ git commit _m "[Comit message"] "
$ git push origin master / branch_name

Радж Шри
источник
0

В качестве обновления ответа Джо в том , что вы можете создать сценарий создания репозитория с помощью API, отличался только вызов API, который мне нужен. Это может быть связано с тем, что мы используем сервер Bitbucket, а не облако Bitbucket.

Для создания нового репо в проекте на нашем сервере я использовал:

curl -X POST -v -u USER:PASSWORD -H "Content-Type: application/json" \
http://SERVER/rest/api/1.0/projects/PROJECTNAME/repos/ \
-d '{"scmid":"git", "name":"REPONAME"}'

где USER, PASSWORD, SERVER, PROJECTNAMEи REPONAMEбыли конечно желаемых / требуемых значений.

Вызов задокументирован в справочнике по API .

/rest/api/1.0/projects/{projectKey}/repos

Создайте новый репозиторий. Требуется существующий проект, в котором будет создан этот репозиторий. Единственные параметры, которые будут использоваться, - это name и scmId.

Авторизованный пользователь должен иметь разрешение PROJECT_ADMIN, чтобы контекстный проект мог вызывать этот ресурс.

Baldrickk
источник
0

(По крайней мере, Linux / WSL). В браузере на bitbucket.org создайте пустое репо с тем же именем, что и ваше локальное репо, следуйте инструкциям, предложенным bitbucket для импорта локального репо (две команды для ввода).

Адемар Патамоб
источник