Como faço para enviar um repo local para o Bitbucket usando SourceTree sem criar um repo no bitbucket primeiro?


116

Existe uma maneira de importar meus repositórios git locais para SourceTree e enviá-los para minha conta do Bitbucket, tendo novos repositórios idênticos aos meus repositórios locais criados em minha conta? Ou eu tenho que fazer um repo online primeiro e empurrar para ele? O Github tem uma maneira de publicar seus repositórios locais diretamente de seu cliente e os cria automaticamente quando você publica, mas tem repositórios privados limitados. Estou apenas fazendo o dever de casa, então não há motivo para ser público, por isso estou tentando usar o bitbucket.

Respostas:


152

(atualizado em 29/03/2019 para usar https em vez de ssh, para que você não precise usar chaves ssh)

Parece que para o BitBucket, você precisa criar um repositório online primeiro. Usando as instruções do Atlassian , simplesmente crie um novo repositório BitBucket, copie a url do repositório para a área de transferência e, em seguida, adicione esse repositório como um novo remoto ao seu repositório local (etapas completas abaixo):

Obter URL do Repo

  1. em seu repositório BitBucket, escolha "Clonar" no canto superior direito
  2. escolha "HTTPS" em vez de "SSH" no canto superior direito da caixa de diálogo
  3. deve mostrar o url do seu repo no formulário git clone <repository url>

Adicionar Remoto Usando CLI

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

Adicionar Remoto Usando SourceTree

  1. Repositório> Adicionar Remoto ...
  2. Cole o url do repositório BitBucket ( https://bitbucket.org/<username>/<reponame>.git)

Método antigo: criando e registrando chaves SSH

(este método é se você usar o url ssh em vez do url https, que se parece com isso ssh://git@bitbucket.org/<username>/<reponame>.git. Recomendo apenas usar https)

O BitBucket é ótimo para repositórios privados, mas você precisará configurar uma chave ssh para autorizar seu computador a funcionar com sua conta BitBucket. Felizmente, Sourcetree torna-o relativamente simples:

Criando uma chave em SourceTree:

  1. Em Tools> Options, verifique se SSH Client:está definido como PuTTY/Plinkna Generalguia
  2. Selecione Tools>Create or Import SSH Keys
  3. Na janela pop-up, clique Generatee mova o mouse para dar aleatoriedade ao gerador de chave
  4. Você deve obter algo parecido com o que é mostrado na imagem abaixo. Copie a chave pública (destacada em azul) para sua área de transferência

    massa

  5. Clique em Save private Keye Save public keypara salvar suas chaves onde você escolher (por exemplo, para <Home Dir>/putty/ssk-key.ppke <Home Dir>/putty/ssh-key.pubrespectivamente) antes de passar para a próxima seção

Registrando a chave no BitBucket

  1. Faça login em sua conta BitBucket e, no canto superior direito, clique na imagem do seu perfil e clique emSettings
  2. Vá para a SSH Keysguia na barra lateral esquerda
  3. Clique Add SSH Key, dê um nome e cole a chave pública que você copiou na etapa 4 da seção anterior

É isso aí! Agora você deve conseguir enviar / puxar para seus repositórios privados do BitBucket. Suas chaves não são apenas para Git, muitos serviços usam chaves ssh para identificar usuários, e a melhor parte é que você só precisa de uma. Se você perder suas chaves (por exemplo, ao trocar de computador), basta seguir as etapas para criar e registrar uma nova.

Nota secundária: Criando chaves SSH usando CLI

Basta seguir este tutorial


usando Paste the BitBucket repository url (git@bitbucket.org/<username>/<reponame>.git)irá forçá-lo a adicionar uma chave ssh. Caso você ainda não tenha um existente, será uma dor.
Alex Kyriakidis

1
sim, o BitBucket é principalmente para repositórios privados, então você precisará de uma chave ssh para começar. Não se preocupe, não é tão ruim quanto parece! Eu adicionei um tutorial rápido à minha resposta
woojoo666

3
Por que vocês estão lutando com SSH e chaves públicas / privadas quando é muito mais fácil usar HTTPS? Na Clonecaixa de diálogo, mude o menu suspenso superior direito de SSH para HTTPS e obtenha o URL:https://bitbucket.org/<reponame>.git
Dan Dar3

1
@ DanDar3 Sim, obrigado, isso me salvou de muitos aborrecimentos.
Excrubulent

1
@ DanDar3 uau que é muito mais fácil, atualizei a resposta, obrigado!
woojoo666

24

Na verdade, existe uma solução mais simples (apenas na versão Mac). Apenas quatro etapas:

  1. Clique com o botão direito no repositório e selecione "Publicar no remoto ..."

SourceTree Publish to Remote Screeshot

  1. A próxima janela perguntará se você deseja publicar (github, bitbucket, etc) e, em seguida, está feito.
  2. Vincule o repositório remoto
  3. Empurrar

Isso deve ser novo. Eu não uso repositórios há algum tempo, então vou dar uma olhada.
cma0014

3
Na verdade, eu verifiquei que está apenas na versão Mac do SourceTree, não no Windows. :(
David

1
Sim, eu verifiquei que ele cria o repo no remoto, mas não vincula defini-lo nos remotos do repositório local. Seria uma boa atualização para as próximas versões
David,

1
@bauerMusic isso aconteceu comigo também com a janela "em andamento". Mas não ultimamente. Embora como vc disse ... algo falha com esse recurso. Ele não se vincula ao novo repo remoto como todos esperávamos. Apesar de tudo, SourceTree é o melhor gerenciador GIT para Mac que encontrei.
David

1
Na verdade, funciona perfeitamente para mim, ele cria o repo e o vincula com o local e remoto, talvez desde 2016 eles o melhorem
Kross

10

Como este vídeo ilustra , criar primeiro um repositório online é o caminho mais comum.

As notas de versão do SourceTree mencionam o SourceTree 1.5+:

Suporte a criação de novos repositórios em contas de equipe / organização no Bitbucket.

Portanto, embora não haja nenhum recurso de "publicação", você pode criar seu repositório online a partir da SourceTree.

A postagem do blog " SourceTree for Windows 1.2 is here " (setembro de 2013) também menciona:

Agora você pode configurar suas contas Bitbucket, Stash e GitHub no SourceTree e ver instantaneamente todos os seus repositórios nesses serviços. Clone-os facilmente, abra o projeto na web e até mesmo crie novos repositórios no serviço remoto sem nunca sair da SourceTree .
Você o encontrará no menu em Exibir> Mostrar repositórios hospedados ou usando o novo botão na parte inferior direita do painel de favoritos.

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


Vou tentar isso quando chegar em casa, obrigado!
cma0014

Sim, mas criar a pasta dev local para o repositório está sendo difícil.
Ben Racicot,

3

Eu usei isso e funcionou bem para mim. Se o seu diretório for

"repo" e seu projeto for "hello" copie o projeto lá

cd /path/to/my/repo

Inicialize seu diretório

git init

Prepare o projeto

git add hello

comprometer o projeto

git commit

Adicione configurações usando o e-mail e nome de usuário que você está usando no Bitbucket

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

Adicionar comentário ao projeto

git commit -m 'comment'

empurre o projeto agora

git push origin master

Confira o mestre

git checkout master

3

O Bitbucket oferece suporte a uma API REST que você pode usar para criar repositórios Bitbucket programaticamente.

Documentação e amostra cURL disponível aqui: 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" }'

No Windows, o curl está disponível no shell do Git Bash.

Usando esse método, você pode criar facilmente um script para importar muitos repos de um servidor git local para o Bitbucket.


1

Configure o repositório Bitbucket (linha de comando com Mac)

Crie um novo APLICATIVO começando com o repositório local:

  1. Terminal -> cd ~ / Documents (Cole o caminho do diretório base do APLICATIVO)
  2. Terminal -> mkdir (criar diretório com)
  3. Terminal -> cd (alterar diretório com diretório)
  4. BitBucket A / C -> criar repositório na conta bitBucket
  5. Xcode -> criar um novo projeto xcode com o mesmo nome
  6. Terminal -> git init (initilize repositório vazio)
  7. Terminal -> git remote add origin (Ex. Https: //app@bitbucket.org/app/app.git )
  8. Terminal -> git add.
  9. Terminal -> status do git
    1. Terminal -> git commit -m "IntialCommet"
    2. Terminal -> git push origin master

Crie o repositório clone APPLICATION:

  1. Terminal -> mkdir (criar diretório com)
  2. Terminal -> cd (alterar diretório com diretório)
  3. Terminal -> clone git (Ex. Https: //app@bitbucket.org/app/app.git )
  4. Terminal -> cd
  5. Terminal -> status git (Mostrar status de edição / atualização do arquivo)
  6. Terminal -> git pull origin master
  7. Terminal -> git add.
  8. Terminal -> git push origin master

1

Outra solução para usuários do Windows:

Este usa o Github como uma ponte para chegar ao Bitbucket, causado pela falta de publicação diretamente do aplicativo Windows Sourcetree.

  1. Carregue seu repositório local no aplicativo de desktop Github.
  2. Publique o repo como um repo privado (para privacidade - se desejado) do aplicativo de desktop Github em sua conta Github.
  3. Abra sua conta pessoal / de equipe no site do Bitbucket
  4. Crie um novo repositório Bitbucket importando do Github.
  5. Exclua o repositório no Github.

Feito isso, tudo será carregado no Bitbucket. Seus remotos locais provavelmente precisarão ser configurados para apontar para o Bitbucket agora.


0

O GIT atende bem a seu propósito para controle de versão e projetos de equipe se os commits e branches forem mantidos de maneira adequada.
Etapa 1: clonar seu repo local usando cli, conforme mencionado nas respostas acima

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

Etapa 2: você pode seguir qualquer uma das etapas acima para empurrar / puxar suas obras. Uma maneira fácil é usar o git gui. Ele fornece uma interface gráfica para que seja fácil preparar (adicionar) / descomprimir, confirmar / descomprimir e enviar / puxar. Iniciantes podem entender facilmente o processo git.

$ git gui

(OU)
Etapa 2: Conforme mencionado acima. Os códigos Cli farão o trabalho.

$ git status
$ git add [file_name]
$ git commit _m "[mensagem Comit"] "
$ git push origin master / branch_name


0

Como uma atualização para a resposta de Joe , em que você pode criar um script de criação do repositório usando a API, apenas a chamada de API que eu precisava era diferente. Isso pode ser porque estamos usando o servidor bitbucket, e não a nuvem bitbucket.

Para criar um novo repo dentro de um projeto em nosso servidor, usei:

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"}'

onde USER, PASSWORD, SERVER, PROJECTNAMEe REPONAMEforam, naturalmente, os valores desejados / necessários.

A chamada está documentada na referência da API .

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

Crie um novo repositório. Requer um projeto existente no qual este repositório será criado. Os únicos parâmetros que serão usados ​​são name e scmId.

O usuário autenticado deve ter permissão PROJECT_ADMIN para que o projeto de contexto chame este recurso.


0

(Linux / WSL pelo menos) No navegador em bitbucket.org, crie um repo vazio com o mesmo nome de seu repo local, siga as instruções propostas pelo bitbucket para importar um repo local (dois comandos para digitar).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.