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

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


person cma0014    schedule 18.06.2014    source источник


Ответы (11)


(обновлено 29.03.2019 для использования https вместо ssh, поэтому вам не нужно использовать ключи ssh)

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

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

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

Добавить удаленное управление с помощью интерфейса командной строки

  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://[email protected]/<username>/<reponame>.git. Я рекомендую просто использовать https)

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

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

  1. В _7 _> _ 8_ убедитесь, что для SSH Client: установлено значение PuTTY/Plink на вкладке General
  2. Выберите _12 _> _ 13_
  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 с помощью интерфейса командной строки

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

person woojoo666    schedule 24.01.2015
comment
использование Paste the BitBucket repository url ([email protected]/<username>/<reponame>.git) заставит вас добавить ключ ssh. Если у вас еще нет существующего, будет боль. - person Alex Kyriakidis; 12.06.2015
comment
да, BitBucket в основном предназначен для частных репозиториев, поэтому для начала вам понадобится ключ ssh. Не волнуйтесь, все не так плохо, как кажется! Я добавил к своему ответу краткое руководство - person woojoo666; 12.06.2015
comment
Хорошо, но в следующий раз тебе стоит упомянуть такую ​​вещь, как. Также, если вы удалите репо и создадите его заново, вы снова сможете использовать https. - person Alex Kyriakidis; 12.06.2015
comment
хорошо спасибо, буду иметь это в виду в следующий раз :) - person woojoo666; 12.06.2015
comment
ВАЖНО: теперь BitBucket требуется 2048-битный ключ, поэтому, если вы последуете этой инструкции, она не сработает и выдаст ошибку Недостаточно длинный ключ. Bitbucket требует, чтобы ключи RSA были не менее 2048 бит.. Когда вы генерируете ключ в SourceTree (шаг 4) в нижней части диалога измените количество бит в сгенерированном ключе с 1024 по умолчанию на 2048, а затем он примет ваш ключ - person Daniel; 16.11.2017
comment
Почему вы, ребята, боретесь с SSH и общедоступными / закрытыми ключами, когда использовать HTTPS намного проще? В диалоговом окне Clone переключите верхний правый раскрывающийся список с SSH на HTTPS и получите URL: https://bitbucket.org/<reponame>.git - person Dan Dar3; 31.03.2018
comment
@ DanDar3 Да, спасибо, это избавило меня от лишних хлопот. - person Excrubulent; 15.03.2019
comment
@ DanDar3 вау, это намного проще, я обновил ответ, спасибо! - person woojoo666; 30.03.2019
comment
Это не отвечает на вопрос. Он по-прежнему требует, чтобы вы перешли на URL-адрес битбакета и создали репо, прежде чем вы сможете опубликовать его. - person Maximilian Burszley; 08.04.2019
comment
@ TheIncorrigible1, ты прав, я плохо это сформулировал. Был задан вопрос, можно ли опубликовать репо напрямую или нужно сначала создать репо онлайн. Я отредактировал начало своего поста, чтобы прямо ответить на вопрос - person woojoo666; 08.04.2019
comment
Для справки: возможно автоматическое создание удаленного репо с помощью API - person Maximilian Burszley; 08.04.2019
comment
@ TheIncorrigible1 на самом деле пользователь упомянул, что в другом ответе, но на самом деле это не отвечает на вопрос либо потому, что OP специально попросил использовать SourceTree - person woojoo666; 08.04.2019

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

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

SourceTree Publish to Remote Screeshot

  1. В следующем окне будет предложено опубликовать (github, bitbucket и т. Д.), И тогда все будет готово.
  2. Свяжите удаленный репозиторий
  3. Толкать
person David    schedule 11.11.2015
comment
Это должно быть ново. Я действительно давно не пользовался репозиториями, так что попробую. - person cma0014; 12.11.2015
comment
На самом деле я проверил, что это только в версии SourceTree для Mac, а не в Windows. :( - person David; 14.11.2015
comment
Средства в github, bitbucket и т. Д. Версия для Mac проще, чем для Windows - person Chetabahana; 13.03.2016
comment
Это здорово, но вам, возможно, придется добавить удаленный ответ, как в предыдущем ответе, когда вы захотите нажать. т.е. 'git remote add origin [email protected]/some/url.git' из корня вашего репо, вы можете получить URL-адрес из битбакета. - person WickedW; 23.03.2016
comment
Да, я проверил, что он создает репо на пульте дистанционного управления, но затем не связывает его с пультами локального репозитория. Было бы неплохо апгрейдить для следующих версий - person David; 13.04.2016
comment
(В версии для Mac) это лучший ответ. Однако эта функция кажется неполной (или просто сломанной). Будет создан удаленный повторный запуск, но окно «Создать» останется открытым (как будто ничего не произошло) и может быть закрыто только кнопкой «Отмена». Теперь вы можете перейти на вкладку «удаленный» (в том же окне), просмотреть ее и скопировать URL-адрес, поскольку он также не будет связывать его. (Вы можете щелкнуть правой кнопкой мыши на пульте дистанционного управления, чтобы получить «Скопировать URL-адрес клона в буфер обмена». - person bauerMusic; 26.05.2016
comment
@bauerMusic это случилось со мной также с окном выполнения. Но не в последнее время. Хотя, как вы сказали ... что-то не так с этой функцией. Он не связан с новым удаленным репо, как мы все ожидали. Несмотря ни на что, SourceTree - лучший менеджер GIT для Mac, который я нашел. - person David; 28.05.2016
comment
На самом деле он отлично работает для меня, он создает репо и связывает его с локальным и удаленным, может быть, с 2016 года они его улучшают - person Kross; 26.07.2017
comment
Попробовал сегодня и да, улучшился. - person David; 10.12.2017
comment
Вы всегда можете изменить удаленный URL-адрес для своего клона, используя значок Settings (верхний правый угол) ›Remotes› выберите и отредактируйте origin или Repository меню ›Repository settings› выберите и отредактируйте origin. - person Dan Dar3; 31.03.2018

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

В примечаниях к выпуску 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

person VonC    schedule 19.06.2014
comment
Я попробую это, когда вернусь домой, Спасибо! - person cma0014; 20.06.2014
comment
Да, но сделать локальную папку разработчика репозиторием сложно. - person Ben Racicot; 08.04.2015

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

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

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
person bademba    schedule 23.09.2015

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.

person Joe Savage    schedule 06.04.2016

Настройка репозитория 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://[email protected]/app/app.git)
  8. Терминал -> git add.
  9. Terminal -> git status
    1. Terminal -> git commit -m "IntialCommet"
    2. Терминал → git push origin master

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

  1. Терминал -> mkdir (создать каталог с помощью)
  2. Терминал -> cd (сменить каталог на каталог)
  3. Терминал -> git clone (например, https://[email protected]/app/app.git)
  4. Терминал -> cd
  5. Терминал -> git status (Показать статус редактирования / обновления файла)
  6. Терминал → git pull origin master
  7. Терминал -> git add.
  8. Терминал → git push origin master
person Shrikant Tanwade    schedule 31.01.2018

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

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

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

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

person David Ruiz    schedule 12.02.2019

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

git remote add origin https://[username]@bitbucket.org/[username]/[reponame].git
git push -u origin master

Вы можете использовать Git Bash в папке с локальным репозиторием SourceTree и вставить эти две команды. Теперь, когда вы отправляете фиксацию из SourceTree, она также будет отправлена ​​в онлайн-репозиторий BitBucket.

person TK-421    schedule 21.04.2021

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

$ cd [path_to_repo]
$ git remote add origin ssh: //[email protected]//.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

person Raj sree    schedule 18.03.2016

В качестве обновления для ответа Джо, в котором вы можете создать сценарий создания репозитория с помощью API, только API вызывает I нужно было другое. Это может быть связано с тем, что мы используем сервер 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, чтобы контекстный проект мог вызывать этот ресурс.

person Baldrickk    schedule 15.05.2017

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

person Adhémar Patamob    schedule 04.04.2020